基于UDP的Socket多个客户端之间的简单通信
本案例包括一个UDPServer.java服务器端类,两个客户端UDPClient.java、UDPClient2.java类,两个线程类,分别为UDPServerRunnable.java和UDPClientThread
下面直接贴代码
服务器端类UDPServer.java
package com.UDP;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPService {
public static void main(String[] args) {
/*
* 接收客户端信息
*/
try {
while(true) {
DatagramSocket socket = new DatagramSocket(8888);
UDPServerRunnable udpThread = new UDPServerRunnable(socket);
udpThread.run();
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
服务器端调用线程类UDPServerRunnable.java
package com.UDP;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPServerRunnable implements Runnable {
DatagramSocket socket = null;
DatagramPacket packet = null;
public UDPServerRunnable(DatagramSocket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
//2、创建数据报
byte[] data = new byte[1024];
packet = new DatagramPacket(data, data.length);
System.out.println("我是服务器,等待客户端连接" );
socket.receive(packet)