在
Java中实现
TCPServer和
TCPClient可以使用
Java提供的Socket类和ServerSocket类。
下面是一个简单的
TCPServer实现:
```
javaimport
java.net.*;
import
java.io.*;
public class
TCPServer {
public static void main (String [] args ) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(9999);
} catch (IOException e) {
System.err.println("Could not listen on port: 9999.");
System.exit(1);
}
Socket clientSocket = null;
System.out.println ("Waiting for connection.....");
try {
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
System.out.println ("Connection successful");
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),
true);
BufferedReader in = new BufferedReader(
new InputStreamReader( clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println ("Server: " + inputLine);
out.println(inputLine);
if (inputLine.equals("Bye."))
break;
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
上述代码创建了一个ServerSocket并监听9999端口。当客户端连接后,程序会创建一个Socket并开始读取客户端发送的数据。服务器将客户端发送的数据原样返回,并在客户端发送“Bye.”后关闭连接。
下面是一个简单的
TCPClient实现:
```
javaimport
java.net.*;
import
java.io.*;
public class
TCPClient {
public static void main(String[] args) throws IOException {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
socket = new Socket("localhost", 9999);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: localhost.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: localhost.");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("Server: " + in.readLine());
if (userInput.equals("Bye."))
break;
}
out.close();
in.close();
stdIn.close();
socket.close();
}
}
```
上述代码创建了一个Socket并连接到服务器的9999端口。客户端从标准输入读取数据,并将其发送到服务器。客户端接收服务器发送的数据,并将其打印到控制台。
这只是一个简单的示例,实际应用
中需要考虑更多的异常情况和数据处理方式。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/11111.html