0
点赞
收藏
分享

微信扫一扫

UDP聊天室-消息发送接收


发送端

//udp不需要连接服务器
public class send {
public static void main(String[] args) {
//建立一个socket
DatagramSocket socket = null;
try {
socket = new DatagramSocket();
//建立包,从控制台读取System.in
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String data = reader.readLine();
//发送
DatagramPacket packet = new DatagramPacket(data.getBytes(), 0, data.getBytes().length, InetAddress.getByName("localhost"), 6666);
socket.send(packet);
//判断是否断开
if (data.equals("over")) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

接收端

//udp不需要连接服务器
public class receive {
public static void main(String[] args) {
//建立一个socket
DatagramSocket socket = null;
try {
//接收包
socket = new DatagramSocket(6666);
while (true) {
//创建Buffer
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);
//阻塞接收
socket.receive(packet);
//接收数据
String data = new String(packet.getData(), 0, packet.getLength());
//判断是否断开
if (data.equals("over")) {
break;
}
System.out.println(data);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

发送端可无限发送消息给接收端,直到发送over,结束



举报

相关推荐

0 条评论