您的位置:首页 > 编程语言 > Java开发

一个简单的Java UDP协议通信的例子

2015-02-09 09:41 543 查看
一个简单的Java UDP协议通信的例子

server:

import java.net.*;

public class UDPServer {
private static final int PORT = 5000;
private DatagramSocket dataSocket;
private DatagramPacket dataPacket;
private byte receiveByte[];
private String receiveStr;

public UDPServer() {
Init();
}

public void Init() {
try {
dataSocket = new DatagramSocket(PORT);
receiveByte = new byte[1024];
dataPacket = new DatagramPacket(receiveByte, receiveByte.length);
receiveStr = "";
int i = 0;
while (i == 0)// 无数据,则循环

{
dataSocket.receive(dataPacket);
i = dataPacket.getLength();
// 接收数据

if (i > 0) {
// 指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点

receiveStr = new String(receiveByte, 0, dataPacket.getLength());
System.out.println(receiveStr);
i = 0;// 循环接收

}
}
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String args[]) {
new UDPServer();
}
}

client:

import java.io.*;
import java.net.*;

public class UDPClient {
private static final int PORT = 4561;
private DatagramSocket dataSocket;
private DatagramPacket dataPacket;
private byte sendDataByte[];
private String sendStr;

public UDPClient() {
Init();
}

public void Init() {
try {
// 指定端口号,避免与其他应用程序发生冲突

dataSocket = new DatagramSocket(PORT+1);
sendDataByte = new byte[1024];
sendStr = "UDP方式发送数据";
sendDataByte = sendStr.getBytes();
dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,
InetAddress.getByName("localhost"), PORT);
dataSocket.send(dataPacket);
} catch (SocketException se) {
se.printStackTrace();
} catch (IOException ie) {
ie.printStackTrace();
}
}

public static void main(String args[]) {
new UDPClient();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: