⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socketsendreceivetest.java

📁 gcc的组建
💻 JAVA
字号:
import java.net.*;import java.io.*;/* * Start one thread for receiving a packet, wait for it to set up, * send a packet to it, and wait until it completes.  Compare the * packet to make sure it came thru without errors. */public class SocketSendReceiveTest  implements Runnable{  public static final int port = 4000 + (int)(java.lang.Math.random() * 2000);  public static final String message = "hello";  public static int count = 0;  public static String received;  void send()    throws Exception    {      InetAddress local = InetAddress.getLocalHost();      Socket sender = new Socket(local, port);      byte []message_bytes = message.getBytes();      DataOutputStream out = new DataOutputStream(sender.getOutputStream());      out.write(message_bytes, 0, message_bytes.length);      out.flush();      sender.close();    }  void receive()    throws Exception    {      ServerSocket socket = new ServerSocket(port);      synchronized(this) {	  notifyAll();      }      Socket connection = socket.accept();      DataInputStream in = new DataInputStream(connection.getInputStream());      byte[] buffer = new byte[100];      int length = in.read(buffer);      connection.close();      socket.close();      received = new String(buffer, 0, length);      count++;      if ( message.length() != received.length() )	throw new Exception("Receved "+ received.length()+			    " bytes but sent "+message.length() + " bytes");      if ( ! message.equals(received) )	throw new Exception("Receved \""+ received+			    "\" but sent \""+message + "\"");    }  public void run()    {      String name = Thread.currentThread().getName();      if (name.equals("timer")) {	try {	  Thread.sleep(10000);	} catch (InterruptedException e){}	System.out.println("FAILED: timer triggered");	System.exit(0);      }      try {	receive();      } catch (Exception e) {	System.out.println("FAILED: receiver (port "+port + "): " + e);	System.exit(0);      }    }  public static void main(String args[])    {      try {	SocketSendReceiveTest sender = new SocketSendReceiveTest();	SocketSendReceiveTest receiver = new SocketSendReceiveTest();	Thread receiver_thread = new Thread(receiver);	/* Make sure the test terminates even if it hangs on network */	SocketSendReceiveTest timer = new SocketSendReceiveTest();	Thread timer_thread = new Thread(timer, "timer");	timer_thread.start();	synchronized(receiver) {	  receiver_thread.start();	  receiver.wait();	}	try {	  sender.send();	} catch (Exception e) {	  System.out.println("FAILED: receiver (port "+port + "): " + e);	  System.exit(0);	}	receiver_thread.join();	if (0 == count)	  throw new Exception("Nothing received");	System.out.println("PASSED: Socket send/receive count="+count+			   " message="+received);	System.exit(0);      } catch (Exception e) {	System.out.println("FAILED: " + e);	System.exit(0);      }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -