Java(使用无连接的UDP方式通信)
2014-04-08 22:20
274 查看
数据报是网上传输的独立数据包,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。
Java中使用Datagram与DatagramPacket类
DatagramSocket类利用UDP协议来实现客户与服务器的Socket
send()方法用于发送数据报
receive()方法接收数据报
Java中使用Datagram与DatagramPacket类
DatagramSocket类利用UDP协议来实现客户与服务器的Socket
send()方法用于发送数据报
receive()方法接收数据报
import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Server { public static void main(String[] args) throws Exception { DatagramSocket datagramSocket = new DatagramSocket(5678); // 服务端收到数据报后会放到DatagramPacket中 byte[] buffer = new byte[100]; DatagramPacket datagramPacket = new DatagramPacket(buffer, 100); // 接收数据报,放到datagramPacket中去 datagramSocket.receive(datagramPacket); // 接收到的数据内容 byte[] data = datagramPacket.getData(); System.out.println("receive from client : " + new String(data, 0, datagramPacket.getLength())); // 客户端地址 InetAddress address = datagramPacket.getAddress(); // 客户端端口 int port = datagramPacket.getPort(); //获取字符内容长度,准备返回给客户端 int strLength = datagramPacket.getLength(); //构建返回的数据报 DatagramPacket datagramPacket2 = new DatagramPacket(String.valueOf( strLength).getBytes(), String.valueOf(strLength).length(), address, port); //发送回客户端 datagramSocket.send(datagramPacket2); datagramSocket.close(); } }
import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Client { public static void main(String[] args) throws Exception { DatagramSocket datagramSocket = new DatagramSocket(); String content = "hello world"; InetAddress address = InetAddress.getByName("localhost"); DatagramPacket datagramPacket = new DatagramPacket(content.getBytes(), content.length(), address, 5678); //将构建好的数据报发送到服务端 datagramSocket.send(datagramPacket); //接收服务端返回的内容到datagramPacket2 byte[] buffer = new byte[100]; DatagramPacket datagramPacket2 = new DatagramPacket(buffer, 100); datagramSocket.receive(datagramPacket2); // 输出接收到的数据内容 byte[] data = datagramPacket2.getData(); System.out.println("receive from server : " + new String(data, 0, datagramPacket2.getLength())); datagramSocket.close(); } }
相关文章推荐
- 使用无连接的数据报(UDP)进行通信 分类: Java 2015-07-27 20:59 13人阅读 评论(0) 收藏
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- Java使用udp传输方式进行网络通信
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- java中使用socket进行udp方式通信时拔掉网线会导致send()方法阻塞
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- 使用无连接的数据报(UDP)进行通信
- 一个简单的JAVA网络通信 UDP 单工方式
- Java学习笔记—使用dbcp2数据库连接池方式连接测试数据库
- java使用jdbc方式连接数据库实例
- java application 应用程序 使用JDBC proxool 两种方式连接数据库 测试程序代码
- 使用无连接的数据报(UDP)进行通信
- Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)
- [分布式java]基于JavaAPI实现消息方式的系统间通信:UDP/IP+BIO
- JAVA:使用 HTTP 的 Post 方式与网络交互通信
- java使用JDBC连接数据库的几种方式
- java使用UDP来进行客户端和服务器端通信的简单例子
- Java网络编程中的TCP,UDP通信方式详解
- Java-HTTP连接时如何使用代理(一)—— System.Property方式