看了网络编程,顺便做个自娱自乐的小程序
做了个自己给自己聊天的程序
左边的代码
public class UDPsend {
//发送数据
public static void main(String[] args) throws IOException {
InetAddress ip=InetAddress.getLocalHost();//获取本地地址
DatagramSocket ds=new DatagramSocket();
DatagramPacket dp=null;
InputStream is=System.in;
while(true)
{
byte[] pk=new byte[100];//每一次都新建一个数组来确保不会重叠
System.out.println("发送端----------"+"\n");
is.read(pk);
dp=new DatagramPacket(pk,pk.length,ip,10000);
ds.send(dp);//发送
String s=new String(pk,0,4);
if(s.equals("再见")) {
System.out.println("------------您退出了聊天器");
ds.close();//关闭资源
break;
}
}
}
}
右边的代码
public class UDPaccept {
public static void main(String[] args) throws IOException {
//建立Socket
DatagramSocket ds=new DatagramSocket(10000);
byte[] b=new byte[20];
//创建数据包用于存储接收到的数据,方便用数据包对象的方法解析这些数据
DatagramPacket dp=new DatagramPacket(b,20);
//使用Socket服务的receive方法将接受的数据存储到数据包中
while(true) {
System.out.println("接收端----------");
ds.receive(dp);
int port =dp.getPort();
String text=new String(dp.getData(),0,dp.getLength());//还有回车符
// System.out.println(ip+" "+port+" "+text);
Date d=new Date();
System.out.println(d.toString()+"\n"+text);
if(new String(dp.getData(),0,4).equals("再见"))
{
System.out.println("对方退出了群聊----------------------");
ds.close();
break;
}
}
}
}