📄 socketserver.java
字号:
/** * Title: Java网络编程演示 * Description: Java网络编程演示,用于北京师范大学计算机系Java课程教学示范。 * Copyright: Copyright (c) 2001 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */ import java.net.*; import java.io.*; public class SocketServer { static public void main(String argv[]) { Thread thread; int Port = 8080; if( argv.length >= 1 ) Port = Integer.parseInt(argv[0]); try { ServerSocket sock = new ServerSocket( Port ); System.out.println( "Socket connected on port " + Port ); while (true) { Socket s = sock.accept(); thread = new ClientEchoThread(s); thread.start(); System.out.println( "New Thread created." ); } } catch (IOException e) { e.printStackTrace(); System.err.println(e.getMessage()); } System.exit(0); } } class ClientEchoThread extends Thread { private static int ThreadCount = 0; private int ThreadNumber = 0; private Socket s; private DataInputStream input; private PrintStream output; private String msg; public ClientEchoThread( Socket s ) { this.s = s; try { BufferedInputStream bufIn; bufIn = new BufferedInputStream( s.getInputStream() ); input = new DataInputStream( bufIn ); output = new PrintStream( s.getOutputStream() ); } catch (IOException e) { } synchronized( getClass() ) { ThreadCount++; ThreadNumber = ThreadCount; } } public void run() { System.out.println( " " + ThreadNumber + ": Thread listening..." ); while( true ) { try { msg = input.readLine(); if( msg == null ) break; System.out.println( " " + ThreadNumber + ":[Client] " + msg ); msg = "<ECHO>" + msg; System.out.println( " " + ThreadNumber + ":[Server] " + msg ); output.println( msg ); if( msg.equalsIgnoreCase( "<ECHO>EXIT" ) ) break; } catch (IOException e) { break; } } try { if( s != null ) s.close(); } catch (IOException e) { } System.out.println( " " + ThreadNumber + ": Socket closed, thread terminated." ); stop(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -