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通讯的主要内容,如果未能解决你的问题,请参考以下文章