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

📄 sotimeout.java

📁 kaffe Java 解释器语言,源码,Java的子集系统,开放源代码
💻 JAVA
字号:
/** * Test socket timeouts for accept and read for simple stream sockets  * * @author Godmar Back <gback@cs.utah.edu> */import java.net.*;import java.io.*;public class SoTimeout {    public static void main(String av[]) throws Exception {	final String foo = "foo";	int tryport = 45054;	ServerSocket server;	for(;;++tryport) {	    try {		server = new ServerSocket(tryport);		break;	    } catch (IOException _) {}	}        final int port = tryport;        Thread watchdog = new Thread() {            public void run() {                try {                    Thread.sleep(10000);                } catch (InterruptedException _) { }                System.out.println("Failure:   Time out.");                System.exit(-1);            }        };        watchdog.start();        Thread t = new Thread() {            public void run() {		try {		    Socket s = new Socket(InetAddress.getByName(null), port);		    try {			Thread.sleep(3000);		    } catch (InterruptedException e) {			System.out.println("Failure " + e);		    }		    PrintWriter p = new PrintWriter(s.getOutputStream());		    p.println(foo);		    p.close();		} catch (Exception e) {		    System.out.println("Failure " + e);		}            }        };        server.setSoTimeout(1000);        Socket rsocket = null;	try {	    rsocket = server.accept(); 	} catch (SocketTimeoutException e) {	    // System.out.println(e);	    System.out.println("Success 1.");	}        t.start();	rsocket = server.accept(); 	System.out.println("Success 2.");        rsocket.setSoTimeout(2000);	// NB:	2 * 2000 > 3000	InputStream is = rsocket.getInputStream();	LineNumberReader r = new LineNumberReader(new InputStreamReader(is));        byte []b = null;        try {	    r.readLine();	} catch (InterruptedIOException e) {	    // System.out.println(e);	    System.out.println("Success 3.");	}	String s = r.readLine();	if (s.equals(foo)) {	    System.out.println("Success 4.");	}	System.exit(0);    }}/* Expected Output:Success 1.Success 2.Success 3.Success 4.*/

⌨️ 快捷键说明

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