?? 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 + -