大家都知道java中的socket网络编程,而其采用的协议分别有tcp和udp协议两种.
通常的理解tcp协议类似于打电话,udp类似于发短信.前者是线程安全的,但是效率比较低.后者则刚好相反.
今天就做个demo来了解一下udp网络编程.
首先是客户端:
package javasocket.demo; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress; /**
* 1.创建客户端
* 2.准备数据
* 3.打包数据
* 4.发送数据
* 5.关闭
* @author Administrator
*
*/
public class UdpSocketClientDemo { public static void main(String[] args) throws Exception {
//客服端
DatagramSocket client=new DatagramSocket(8000);
String msg="UDP";
byte[] data =msg.getBytes();
DatagramPacket dp=new DatagramPacket(data, data.length,new InetSocketAddress("localhost",8888));
client.send(dp);
client.close();
}
}
服务器:
package javasocket.demo; import java.net.DatagramPacket;
import java.net.DatagramSocket; /**
* 服务端
* 1.创建服务端和接口
* 2.准备接受容器
* 3.封装成包
* 4.接受数据
* 5.分析数据
* 6.关闭
* @author bgt
*
*/
public class UdpSocketServerDemo { public static void main(String[] args) throws Exception {
//服务端
DatagramSocket server=new DatagramSocket(8888);
byte[] container=new byte[1024];
DatagramPacket dp=new DatagramPacket(container, container.length);
server.receive(dp);
byte[] data=dp.getData();
int len=dp.getLength();
System.out.println(new String(data,0,len));
server.close();
}
}