DatagramSocket数据包/UDP
来源:互联网 发布:手机淘宝分享在哪 编辑:程序博客网 时间:2024/05/29 18:04
之前有写过关于TCP协议的socket套接字,这里介绍的是UDP的数据包DatagramSocket。
TCP和UDP的优缺点以及他们各自的特点这里我就不多说了。总之都是有利有弊,
看中速度,那么就"牺牲"安全,注重安全,那么在速度方面可能就要作出“牺牲”了。
下面通过一个小例子来说明UDP的DatagramSocket:
客户端:
package com.data.socket;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;/** * 客户端【数据包发送】 * @author winy_lm * */public class DatagramSocketClient {public static void main(String[] args) {try {// 创建一个socket对象DatagramSocket socket = new DatagramSocket();//封装需要发送的信息数据包byte[] b = "客户端发送数据验证".getBytes();DatagramPacket packet = new DatagramPacket(b, b.length, InetAddress.getLocalHost(), //ip地址,InetAddress类提供各种获取计算机信息的方法9555);// 端口号//向端口为socket.send(packet);} catch (SocketException e) {e.printStackTrace();}catch (UnknownHostException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}}
服务器:
package com.data.socket;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;/** * 服务器【数据包接收】 * @author winy_lm * */public class DatagramSocketServer {public static void main(String[] args) {try {// 创建一个服务,指定端口号DatagramSocket socket = new DatagramSocket(9555);// packet对象需要一个字节数组参数byte[] b = new byte[100];// 创建一个空的数据包对象,用来接收客户端client传过来的packet数据包DatagramPacket packet = new DatagramPacket(b, b.length);// 通过socket将发送到当前端口的数据包接收到packet中socket.receive(packet);// 输出该数据包的数据System.out.write(packet.getData(),0,packet.getLength());System.out.println();//换行,为了和输出数据包信息区分开来System.out.println("当启动server服务器时,验证此处是否在启动的时候就执行");} catch (SocketException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}}
注意:
在讲解socket的时候有说过,必须先启动服务器,要不然客户端会报错![java.net.ConnectException: Connection refused: connect]
但是这里是通过DatagramSocket来发送信息,也就是采取的UDP的方式,所以当先启动客户端的时候,不会报任何错误!
还有一种情况是先启动服务器,当客户端发送数据的端口号设置错误的时候,也不会报错!!!
即采用DatagramSocket是不需要服务器反馈任何信息的,客户端信息发出去就行了,不会去管有没有发送成功或是发送正确!!!
欢迎大家提出宝贵意见!!!!!!!
0 0
- DatagramSocket数据包/UDP
- UDP--DatagramSocket
- DatagramSocket发送数据包
- Java.UDP.DatagramSocket-DatagramPacket
- udp协议 DatagramSocket
- UDP DatagramPacket DatagramSocket
- Java.UDP.DatagramSocket-DatagramPacket
- UDP数据包
- UDP数据包
- UDP数据包
- UDP数据包
- 4.Java Networking: UDP DatagramSocket--java网络:UDP DatagramSocket
- 基于UDP的DatagramSocket通信
- DatagramSocket、DatagramData的UDP通讯
- Java----(UDP)DatagramPacket与DatagramSocket
- java-----UDP---DatagramPacket类与DatagramSocket类
- java之UDP(datagramsocket,datagramPacket)实例
- 网络 UDP通信 DatagramPacket DatagramSocket String
- Java基础——Java笔记——正则表达式笔记
- GCC知识整理
- 二维子数组之和的最大值
- 3D NDT [20151126]
- 数据插入 效率比较 mysql
- DatagramSocket数据包/UDP
- opencv 学习记录
- linux注意事项
- Java Thread Programming -- 目录
- androidStudio 自定义快捷代码的快捷方式
- Exception处理详解[转]
- 结构体定义 typedef struct 用法详解和用法小结 http://blog.sina.com.cn/s/blog_4fdabc820100fsxu.html
- [LeetCode] Maximum Product Subarray 解题思路
- 含有投票故障组的磁盘组存储常规文件