📄 useudpechoserver.java
字号:
import java.net.*;import java.io.*;public class useUDPEchoServer extends Thread { //设置常量 public final static int defaultport = 7; //设置属性 private int bufferSize; protected DatagramSocket ds; //构造器 public useUDPEchoServer(int port, int bufferSize) throws SocketException { this.bufferSize = bufferSize; this.ds = new DatagramSocket(port); } public useUDPEchoServer(int port) throws SocketException { this(port, 8192); ds.setReceiveBufferSize(32768); } public useUDPEchoServer() throws SocketException { this(defaultport); } //线程运行 public void run() { //缓存 byte[] buffer = new byte[bufferSize]; //无限循环 while (true) { //带寻址信息的数据包 DatagramPacket incoming = new DatagramPacket(buffer, buffer.length); try { //接收数据信息 ds.receive(incoming); //响应 this.respond(incoming); } //捕获异常 catch (IOException e) { System.err.println(e); } } // end while } // end run //响应 public void respond(DatagramPacket incoming) { try { DatagramPacket outgoing = new DatagramPacket(incoming.getData(), incoming.getLength(), incoming.getAddress(), incoming.getPort()); //发送数据包 ds.send(outgoing); //显示数据包信息长度 System.out.println(incoming.getLength()); } catch (IOException e) { System.err.println(e); } } public static void main(String[] args) { try { if (args.length > 0) { int port = Integer.parseInt(args[0]); useUDPEchoServer server = new useUDPEchoServer(port); //启动服务 server.start(); } else { //使用缺省端口 useUDPEchoServer server = new useUDPEchoServer(); server.start(); } } //捕获异常 catch (SocketException e) { System.err.println(e); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -