<div style="text-indent: 2em;">

分别创建两个文件,TCPServer.java 和 TCPClient.java,先运行 TCPServer,开始监听。再运行 TCPClient,在 TCPClient 中输入字符串,TCPServer 接收到后将它转换成大写,传回 TCPClient。如果 TCPClient 输入了 "quit",则退出程序。而 TCPServer 继续监听。

TCPServer.java:

import java.io.*;
import java.net.*;

public class TCPServer { public static void main(String argv[]) throws Exception { String sClientSentence; String sCapitalizedSentence; System.out.println("Server Started."); ServerSocket oWelcomeSocket = new ServerSocket(6789); System.out.println("Server started a welcome socket in port 6789."); while (true) { Socket oConnectionSocket = oWelcomeSocket.accept(); long i; BufferedReader oInFromClient = new BufferedReader(new InputStreamReader(oConnectionSocket.getInputStream())); DataOutputStream oOutToClient = new DataOutputStream(oConnectionSocket.getOutputStream()); System.out.println("A new client connected. "); i = 0; while (true) { sCapitalizedSentence = ""; sClientSentence = ""; try { System.out.println("Try Count: " + i++); sClientSentence = oInFromClient.readLine(); sCapitalizedSentence = sClientSentence.toUpperCase() + '\n'; System.out.println("Client: " + sClientSentence); if (sClientSentence.equals("quit")) { System.out.println("Client want to leave."); sCapitalizedSentence = "OK, I will let you go.\n"; } oOutToClient.writeBytes(sCapitalizedSentence); System.out.println("Me: " + sCapitalizedSentence); if (sClientSentence.equals("quit")) { break; } } catch (Exception oError) { sCapitalizedSentence = "QUIT" + '\n'; System.out.println("Client closed the connection."); break; } finally { } } System.out.println("Connection closed.\n"); } } }

TCPClient.java

import java.io.*;
import java.net.*;

public class TCPClient { public static void main(String argv[]) throws Exception { String sSentence; String sModifiedSentence; BufferedReader oInFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket oClientSocket = new Socket("192.168.1.20", 6789); sModifiedSentence = "Initialize"; System.out.println("Connected."); while (sModifiedSentence != "QUIT") { DataOutputStream oOutToServer = new DataOutputStream(oClientSocket.getOutputStream()); BufferedReader oInFromServer = new BufferedReader(new InputStreamReader(oClientSocket.getInputStream())); sSentence = oInFromUser.readLine(); oOutToServer.writeBytes(sSentence + '\n'); sModifiedSentence = oInFromServer.readLine(); System.out.println("FROM SERVER: " + sModifiedSentence); if (sSentence.equals("quit")) { System.out.println("OK, I quited."); break; } } oClientSocket.close(); System.out.println("Program terminated."); } }