📄 testdatagramsocket.java
字号:
package apibook.c5.s1;import java.net.*;import java.io.*;//测试DatagramSocket类class EchoServer extends Thread { private DatagramSocket sock = null; EchoServer(int port) { try {//建立数据包socket sock = new DatagramSocket(port); } catch (SocketException e) { e.printStackTrace(); } } public void run() { if (sock == null) return;//如果socket没有建立,则返回 byte[] inbuf = new byte[1024];//缓冲区 DatagramPacket request = new DatagramPacket(inbuf, inbuf.length); try { while (true) {//循环收发 sock.receive(request);//接收 sock.send(request);//发送 } } catch (IOException e) { e.printStackTrace(); } }}public class TestDatagramSocket { static int echo_port = 1234; public TestDatagramSocket() { }public static void echo(String msg, DatagramSocket client) { byte[] inbuf = new byte[1024]; // 缓冲区 byte[] outbuf = msg.getBytes(); //发送的内容 try { DatagramPacket request = new DatagramPacket(outbuf, outbuf.length); DatagramPacket reply = new DatagramPacket(inbuf, inbuf.length); client.send(request);//发送 client.receive(reply);//接收 client.close();//关闭 System.out.println(new String(reply.getData()));//输出接收的结果 } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }} public static void main(String[] args) { String msg= ""; if (args.length != 1) { msg = "test for DatagarmSocket"; } else msg = args[0]; //开始 EchoServer srv = new EchoServer(echo_port); srv.setDaemon(true); srv.start(); try { InetAddress dst = InetAddress.getLocalHost(); DatagramSocket dest = new DatagramSocket(); dest.connect(dst, echo_port); System.out.println("remote addr: " + dest.getInetAddress()); System.out.println("remote port: " + dest.getPort()); echo(msg, dest); dest.disconnect(); System.out.println("disconnected addr: " + dest.getInetAddress()); System.out.println("disconnected port: " + dest.getPort()); } catch (UnknownHostException e) { System.err.println("Host not found: " + e); } catch (SocketException e) { e.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -