UDP之socket通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UDP之socket通讯相关的知识,希望对你有一定的参考价值。

分享一个简单的socket通讯,简单易理解

TCP协议与UDP协议的区别

1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

客户端

 1 package com.UDP.socket;
 2 
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 import java.net.InetAddress;
 6 
 7 public class Client {
 8     public static void main(String[] args) {
 9         DatagramSocket socket = null;
10         try {
11             socket = new DatagramSocket();//创建Socket
12             byte[] data = "你好服务器!".getBytes();
13             DatagramPacket packet = new DatagramPacket(
14                                         data, 
15                                         data.length,
16                                         InetAddress.getByName("localhost"),//地址
17                                         8088//端口
18                                     );//创建发送包
19             socket.send(packet);//发送数据
20             
21             
22         } catch (Exception e) {
23             e.printStackTrace();
24         } finally{
25             if(socket != null){
26                 socket.close();//关闭以释放资源
27             }
28         }
29     }
30 }

服务端:

 1 package com.UDP.socket;
 2 
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 
 6 public class Server {
 7     public static void main(String[] args) {
 8         DatagramSocket socket = null;
 9         try {
10             socket = new DatagramSocket(8088);//申请8088端口
11             byte[] data = new byte[1024];
12             DatagramPacket packet = new DatagramPacket(data, data.length);//创建接收包
13             socket.receive(packet);//会产生阻塞,读取发送过来的数据
14             String str = new String(packet.getData(),0,packet.getLength());//从包中取数据
15             System.out.println(str);
16             
17         } catch (Exception e) {
18             e.printStackTrace();
19         } finally{
20             if(socket != null){
21                 socket.close();//关闭释放资源
22             }
23         }
24     }
25 }


附加一个TCP的soclet通信:http://www.cnblogs.com/zzbobo/p/7457621.html

 

以上是关于UDP之socket通讯的主要内容,如果未能解决你的问题,请参考以下文章

socket之UDP

Python 之 Socket编程(TCP/UDP)

python模块之socket

网络编程-Socket编程(异步通讯)(Tcp,Udp)

网络编程-Socket编程(异步通讯)(Tcp,Udp)

socket通讯,TCP,UDP,HTTP的区别