Java网络编程之UDP网络通信详解_第1页
Java网络编程之UDP网络通信详解_第2页
Java网络编程之UDP网络通信详解_第3页
Java网络编程之UDP网络通信详解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Java网络编程之UDP网络通信详解目录1.UDP网络通信编程原理1.1UDP网络通信编程介绍1.2UDP网络通信编程的基本流程2.UDP网络通信编程案例

1.UDP网络通信编程原理

1.1UDP网络通信编程介绍

类DatagramSocket何DatagramPacket(数据包/数据报)实现了基于UDP协议网络程序;

UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送达目的地,也不确定什么时候可以抵达;

DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端IP地址和端口号,以及接收端的IP地址和端口号;

UDP协议中每个数据报都给出了完整的地址信息,因此无法建立发送方与接收方的连接。

没有明确的服务端和客户端,演变成数据的发送端和接收端;

接收数据和发送数据都是通过DatagramSocket对象完成。

1.2UDP网络通信编程的基本流程

核心的两个类/对象,DatagramSocket与DatagramPacket;

建立发送端和接收端;

建立数据包;

调用DatagramSocket的发送和接收方法;

关闭DatagramSocket。

2.UDP网络通信编程案例

1.编写一个接收端A,一个发送端B;

2.接收端在9999端口等待接收数据(receive);

3.发送端向接收端发送数据:你好!接收端

4.接收端接收到发送端的数据后,回复:你好!发送端,再退出;

5.发送端接收回复的数据,退出。

UDPReceiverA

importjava.io.IOException;

import.DatagramPacket;

import.DatagramSocket;

import.InetAddress;

*@author兴趣使然黄小黄

*@version1.0

*接收端A

publicclassUDPReceiverA{

publicstaticvoidmain(String[]args)throwsIOException{

//1.创建一个DatagramSocket对象,准备在9999接收数据

DatagramSocketsocket=newDatagramSocket(9999);

//2.构建一个DatagramPacket对象,准备接收数据

byte[]buf=newbyte[1024];

DatagramPacketpacket=newDatagramPacket(buf,buf.length);

//3.调用接收方法,将通过网络传输的DatagramPacket对象填充到packet对象

System.out.println("接收端A等待接收数据...");

socket.receive(packet);

//4.把packet进行拆包,取出数据

intlength=packet.getLength();//实际数据字节长度

byte[]data=packet.getData();//实际接收的数据

Strings=newString(data,0,length);

System.out.println(s);

//回复信息给B端

data="你好!发送端".getBytes();

packet=newDatagramPacket(data,0,data.length,

InetAddress.getLocalHost(),9998);

socket.send(packet);

//5.关闭资源

socket.close();

UDPSenderB

importjava.io.IOException;

import.*;

*@author兴趣使然黄小黄

*@version1.0

*发送端B

publicclassUDPSenderB{

publicstaticvoidmain(String[]args)throwsIOException{

//1.创建DatagramSocket对象,准备在9998发送和接收数据

DatagramSocketsocket=newDatagramSocket(9998);

//2.将需要发送的数据,封装到DatagramPacket中

byte[]data="你好!接收端".getBytes();

DatagramPacketdatagramPacket=

newDatagramPacket(data,0,data.length,

InetAddress.getLocalHost(),9999);

socket.send(datagramPacket);

//接收A消息

socket.receive(datagramPacket);

intlength=datagramPacket.getLength();//实际数据字节长度

data=datagramP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论