📄 receiveserver.java
字号:
/** * Title: Java网络编程演示 * Description: Java网络编程演示,用于北京师范大学计算机系Java课程教学示范。 * Copyright: Copyright (c) 2001 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */ import java.io.*; import java.util.*; import java.net.*; public class receiveServer{ // 定义receiveServer类 final int RECEIVE_PORT = 9090; // 服务器端口号 public receiveServer() { // receiveServer构造方法 ServerSocket rServer = null; // ServerSocket实例化 Socket request = null; // 定义客户请求套接字 Thread receiveThread = null; // 定义接收线程 try{ rServer=new ServerSocket(RECEIVE_PORT); // 初始化ServerSocket System.out.println( "Welcome to the server!" ); System.out.println( new Date() ); System.out.println( "The server is ready!" ); System.out.println( "Port: " + RECEIVE_PORT ); while(true){ // 等待客户请求 request = rServer.accept(); // 接收客户端连接请求 receiveThread = new serverThread(request); // 接收线程实例化 receiveThread.start(); // 启动接收线程 } } catch( IOException e ){ System.out.println(e.getMessage()); } } public static void main(String args[]){ new receiveServer(); } // 定义main方法 } //end of class class serverThread extends Thread { // 定义serverThread类 Socket clientRequest; // 客户端连接通信套接字 BufferedReader input; // 定义输入流 PrintWriter output; // 定义输出流 public serverThread(Socket s) { // serverThread构造方法 this.clientRequest = s; // 接收receiveServer传来的套接字 InputStreamReader reader; // 声明读数据类型 OutputStreamWriter writer; // 声明写数据类型 try{ // 初始化输入、输出流 reader = new InputStreamReader( clientRequest.getInputStream() ); writer = new OutputStreamWriter( clientRequest.getOutputStream() ); input = new BufferedReader( reader ); output = new PrintWriter( writer,true ); } catch( IOException e ) { System.out.println( e.getMessage() ); } output.println( "Welcome to the server!" ); // 客户端机连接显示语 output.println( "Now is: " + new java.util.Date() + " " + "Port:" + clientRequest.getLocalPort() ); output.println( "What can I do for you?" ); } public void run() { // 线程执行方法 String command = null; // 客户指令 String str = null; boolean done = false; while( !done ) { try{ str = input.readLine(); // 接收客户端指令 } catch( IOException e ) { System.out.println( e.getMessage() ); } command = str.trim().toUpperCase(); if( str == null || command.equals( "QUIT" ) ) done=true; // 命令QUIT结束本次连接 else // 命令HELP查询本服务器可接受的命令 if( command.equals( "HELP" ) ){ output.println( "query" ); output.println( "quit" ); output.println( "help" ); } else if( command.startsWith( "QUERY" ) ) { // 命令query output.println( "OK to query something!" ); } // else if …… // 在此可加入服务器的其他指令 else if( !command.startsWith( "HELP" ) && !command.startsWith( "QUIT" ) && !command.startsWith( "QUERY" ) ) { output.println( "Command not Found! Please refer to the HELP!" ); } } // end of while try{ clientRequest.close(); // 关闭套接字 } catch( IOException e ){ System.out.println(e.getMessage()); } command = null; } // end of run }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -