兰州企业网站建设公司价格,郑州网络营销网站优化,价格低性能好的手机,物联网有前途吗Java中提供了DatagramSocket来实现这个功能
1.服务器端的程序 创建Socket#xff0c;监听6666端口读取来自客户端的“数据包”,创建数据包(通过DatagramPacket实现数据包的创建)接收数据包从数据包中#xff0c;读取数据(通过recieve()接收数据和send()发送给数据) 代码如下… Java中提供了DatagramSocket来实现这个功能
1.服务器端的程序 创建Socket监听6666端口读取来自客户端的“数据包”,创建数据包(通过DatagramPacket实现数据包的创建)接收数据包从数据包中读取数据(通过recieve()接收数据和send()发送给数据) 代码如下
package com.ztt.udp.Demo01;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class UdpServer {public static void main(String[] args) {//创建Socket,监听6666端口try (DatagramSocket serverSocket new DatagramSocket(6666)) {//读取来自客户端的数据包//创建数据包byte[] buffnew byte[1024];DatagramPacket packetnew DatagramPacket(buff,buff.length);//接收数据包serverSocket.receive(packet);System.out.println(读取完毕);//从数据包中读取数据byte[] datapacket.getData();String strFormClientnew String(data);System.out.println(来自客户端的信息strFormClient);if(天王盖地虎.equals(strFormClient)) {packet.setData(宝塔镇河妖.getBytes());}else {packet.setData(哈哈哈哈哈哈哈.getBytes());}//反馈信息给客户端(发送数据包至客户端)serverSocket.send(packet);} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}2.客户端的程序 创建socket连接指定主机的端口(客户端使用clientSocket.connect()指定远程地址和端口)创建数据包发送数据包(通过recieve()接收数据和send()发送给数据) 代码如下
package com.ztt.udp.Demo01;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;public class UdpClient {public static void main(String[] args) {//创建sockettry (DatagramSocket clientSocket new DatagramSocket()) {//连接指定主机的端口clientSocket.connect(InetAddress.getByName(192.168.199.112),6666);//创建数据包DatagramPacket packetnew DatagramPacket(new byte[1024],1024);packet.setData(甜甜是甜甜.getBytes());//将数据放入数据包//发送数据包clientSocket.send(packet);//等待接受反馈信息(等待接收来自服务端的数据包)clientSocket.receive(packet);byte[] datapacket.getData();String strFormClientnew String(data);System.out.println(来自服务端的信息strFormClient);} catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}总结 使用UDP协议通信时服务器和客户端双方无需建立连接服务器端用DatagramSocket(port)监听端口客户端使用DatagramSocket.connect()指定远程地址和端口双方通过receive()和send()读写数据DatagramSocket没有IO流接口数据被直接写入byte[]缓冲区