package org.zhangmeng.test.eg_socket;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/***
* DatagramPacket: 创建
* DatagramPacket(byte[ ] data, int length) //如果指定了offset,数据报文的数据部分将从字节数组的指定位置发送或接收数据。
* DatagramPacket(byte[ ] data, int offset, int length) // 以上两种主要是接收端的实例
* DatagramPacket(byte[ ] data, int length, InetAddress remoteAddr, int remotePort) //以下四种主要是发送端的实例
* DatagramPacket(byte[ ] data, int offset, int length, InetAddress remoteAddr, int remotePort)
* DatagramPacket(byte[ ] data, int length, SocketAddress sockAddr)
* DatagramPacket(byte[ ] data, int offset, int length, SocketAddress sockAddr)
* 目的地址和端口号可以分别设置
* DatagramPacket: 地址处理
* InetAddress getAddress()
* void setAddress(InetAddress address)
* int getPort()
* void setPort(int port)
* SocketAddress getSocketAddress()
* void setSocketAddress(SocketAddress sockAddr)
* DatagramSocket的receive()方法是将其地址和端口设置为数据报发送者的地址和端口。
* DatagramPacket: 处理数据
* int getLength()
* void setLength(int length)
* int getOffset()
* byte[ ] getData()
* void setData(byte[ ] data)
* void setData(byte[ ] buffer, int offset, int length)
*/
public class UDPEchoServer {
private static final int ECHOMAX = 255;
public static void main(String[] args) throws IOException{
int servPort = 50000;
DatagramSocket socket = new DatagramSocket(servPort);
DatagramPacket packet = new DatagramPacket(new byte[ECHOMAX], ECHOMAX);
while(true){
socket.receive(packet);
System.out.println("Handing client at " + packet.getAddress().getHostAddress());
socket.send(packet);
packet.setLength(ECHOMAX);
}
}
}
7、java socket UDP 服务端
最新推荐文章于 2023-04-19 22:16:04 发布