地址:蚊子132 和你一起了解java中的socket网络编程
蚊子132 和你一起了解java中的socket网络编程,大家都知道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();
- }
- }