tcpservertest.java

来自「《Java程序设计与应用》-张仕斌-源程序 《Java程序设计与应用》-张仕斌」· Java 代码 · 共 59 行

JAVA
59
字号
//TCPServerTest.java
import java.io.*;
import java.net.*;

public class TCPServerTest {
	public static void main(String[]args) {
		ServerSocket svrSocket = null; //监听套接字
		Socket comSocket = null;       //通信套接字
		BufferedReader is = null;      //流读取对象
		DataOutputStream os = null;    //流写对象
		String line;
		int PORT = 6543;        //监听端口,可以给参数修改
			
		if (args.length > 0) {  //如果要改端口
			try {
				PORT = Integer.parseInt(args[0]);
			}catch(Exception e) {
				System.out.println("端口必须为数字!");
				return;
			}
		}
		
		try { 
			svrSocket = new ServerSocket(PORT);  //创建监听套接字
			System.out.println("Server Listening...");
		}catch(IOException e) {
			System.out.println(e);
		}
		
		try {
			comSocket = svrSocket.accept();  //接受客户端的请求,会阻塞程序
			is = new BufferedReader(new InputStreamReader(
								comSocket.getInputStream()));  //获得读对象
			os = new DataOutputStream(comSocket.getOutputStream()); //获得写对象
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		try {
			line = is.readLine();      //读取客户端发送的数据
			System.out.println("Server received: " + line); //输出收到的内容
			if (line.equals("Hello")) {         //检查是否为可识别的内容
				os.writeBytes("OK,welcome!\n");   //如果是,发送欢迎信息
			} else {                            //否则,发送警告信息
				os.writeBytes("Sorry,I don't understand your language.\n");
			}
		}catch(IOException e) {
			e.printStackTrace();
		}
		
		try {   //关闭所有对象
			os.close();
			is.close();
			comSocket.close();
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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