欢迎来到天天文库
浏览记录
ID:18985194
大小:776.27 KB
页数:5页
时间:2018-09-27
《java se 112 基于udp的网络通信详解 续new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JavaSE112基于UDP的网络通信详解续解说:1、首先是在服务器端构造一个DatagramSocket这样一个对象。2、再去构造一个DatagramPacket这样一个对象,这个是数据报包的意思。3、紧接着可以去准备接收数据,receive(packet),接收其他地方发过来的数据。(客户端发过来的,send(packet))发送端,首先也是构造一个DatagramPacket,包含了要发送消息的内容。发送给谁address是地址。4、在接收端获得到这个包之后,接收端能从包里面获得到packet里面的消息内容,更重要的是能够从pack
2、et里面获得谁给我发送的地址与端口号,5、接收端然后再去构造DatagramPacket6、发送7、接收端再去接收DatagramPacket就好像一封信一样,包含了要发送的内容,它封装在DatagramPacket里面了。packagecom.javase.network;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;/***使用UDP时,没有明显的客户端与服务器端*@authorx_xiongjie**/pu
3、blicclassUdpTest1{publicstaticvoidmain(String[]args)throwsException{DatagramSocketsocket=newDatagramSocket();//构造数据包Stringstr="helloworld";DatagramPacketpacket=newDatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),7000);socket.send(packet);//rec
4、eive()方法也是接收一个DatagramPacket,即调用receive方法之前也需要新建一个DatagramPacket//但是它里面的字节数组可以是空的,紧接着收到对方信息之后,它会自动将字节数组内容用收到的信息给填充上,接下来获得的数组里面的//东西就是对方发过来的东西。//接收getLength()方法获得实际收到的数据的字节长度byte[]buffer=newbyte[1000];DatagramPacketpacket2=newDatagramPacket(buffer,100);socket.receive(packe
5、t2);System.out.println(newString(buffer,0,packet2.getLength()));socket.close();}}packagecom.javase.network;importjava.net.DatagramPacket;importjava.net.DatagramSocket;/***先发后收*@authorx_xiongjie**/publicclassUdpTest2{publicstaticvoidmain(String[]args)throwsException{Datagr
6、amSocketsocket=newDatagramSocket(7000);byte[]buffer=newbyte[1000];DatagramPacketpacket=newDatagramPacket(buffer,1000);socket.receive(packet);System.out.println(newString(buffer,0,packet.getLength()));//------------------------接收结束-----------------------//向对方回馈消息,应该从packet
7、之中获得对方的ip和端口号Stringstr="welcome";DatagramPacketpacket2=newDatagramPacket(str.getBytes(),str.length(),packet.getAddress(),packet.getPort());socket.send(packet2);socket.close();}}先启动UdpTest2不管是TCP还是UDP都需要知道对方机器的地址与端口号
此文档下载收益归作者所有