import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
class Server implements Runnable {
private DatagramSocket socket;
public Server(DatagramSocket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
while(true){
byte[]buffer = new byte[1024];
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
socket.receive(dp);
String ip = dp.getAddress().getHostAddress();
String date = new String(dp.getData(),0,dp.getLength());
System.out.println("ip为:"+ip+"的用户给你发送了一个信息,内容是:"+date);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Client implements Runnable {
private DatagramSocket socket;
public Client(DatagramSocket socket) {
this.socket = socket;
}
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try {
while((s = br.readLine())!=null){
byte[]buffer = s.getBytes();
DatagramPacket dp = new DatagramPacket(buffer, buffer.length,InetAddress.getByName("192.168.0.104"),10000);
socket.send(dp);
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class Main {
public static void main(String[] args) throws SocketException {
DatagramSocket server = new DatagramSocket(10000);
DatagramSocket client = new DatagramSocket();
new Thread(new Server(server)).start();
new Thread(new Client(client)).start();
}
}
基于UDP写的一个聊天小Demo
最新推荐文章于 2023-12-04 22:50:26 发布