通过UDP设计学生和老师的聊天系统
package com.UDPConnect;
//老师端(客服端)
import java.io.IOException;
import java.net.*;
import java.util.Scanner;
public class ResciveDemo {
public static void main(String[] args) {
DatagramSocket datagramSocket = null;
System.out.println("老师上线了。。。");
while (true){
try {
datagramSocket = new DatagramSocket(9999);
byte []bytes = new byte[1024];
//填充空包
DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length);
//进行回复
datagramSocket.receive(datagramPacket);
//接收数据
byte []data= datagramPacket.getData();
String str = new String(data,0,datagramPacket.getLength());
if(str.equals("Buy")){
System.out.println("亲爱的老师,您的学生已经下线了");
break;
}
System.out.print("学生对我说:"+str);
//进行回复:
Scanner sc = new Scanner(System.in);
String next = sc.next();
String str1 = next;
byte []bytes1 =str1.getBytes();
DatagramPacket datagramPacket1 = new DatagramPacket(bytes1,bytes1.length, InetAddress.getByName("localhost"),8888);
datagramSocket.send(datagramPacket1);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (datagramSocket!=null){
datagramSocket.close();
}
}
}
}
}
package com.UDPConnect;
//学生端(用户端)
import java.io.IOException;
import java.net.*;
import java.util.Scanner;
public class SendDemo {
public static void main(String[] args) {
DatagramSocket datagramSocket = null;
System.out.println("学生上线了。。。");
//借用套接字,设定端口号
while (true){
try {
datagramSocket = new DatagramSocket(8888);
//准备要发送的数据包
Scanner sc = new Scanner(System.in);
System.out.print("学生说:");
String next = sc.next();
String str = next;
byte []bytes =str.getBytes();
DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length, InetAddress.getByName("localhost"),9999);
datagramSocket.send(datagramPacket);
if(str.equals("Buy")){
break;
}
//进行接收老师的回复
byte []bytes1 = new byte[1024];
//填充空包
DatagramPacket datagramPacket1 = new DatagramPacket(bytes1,bytes1.length);
datagramSocket.receive(datagramPacket1);
byte []data= datagramPacket1.getData();
String str1 = new String(data,0,datagramPacket1.getLength());
System.out.println("老师回复对我说:"+str1);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {if(datagramSocket!=null){
datagramSocket.close();
}
}
}
}
}