服务端:
- 创建一个 ServerSocket 对象,绑定主机端口号
- 通过 accept() 方法监听客户端请求
- 连接建立后,通过输入流(socket.getInputStream)读取客户端发送的请求信息
- 通过输出流(socket.getOutputStream())向客户端发送响应信息
- 连接关闭
客户端:
- 创建Socket对象,指明需要连接的服务器的 IP 和 port
- 连接建立后,通过输出流 socket.getOutputStream()发送请求信息
- 通过输入流获取获取服务端 socket.getInputStream()的响应信息
- 关闭连接
TcpServer 代码实现:
public static void main(String[] args) {
System.out.println("TcpServer 启动。。。");
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(9000);
Socket socket = serverSocket.accept();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(
socket.getInputStream()
)
);
System.out.println("Waiting for receive。。。");
String line = bufferedReader.readLine();
System.out.println("receive client : "+line);
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
printWriter.write("welcome ...");
printWriter.flush();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
TcpClint 代码实现:
public static void main(String[] args) throws Exception {
Socket client = new Socket("127.0.0.1", 9000);
try {
PrintWriter output =
new PrintWriter(client.getOutputStream(), true);
String words = "nice ...";
output.println(words);
System.out.println("send data: " + words);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(
client.getInputStream()
)
);
System.out.println("Waiting for receive 。。。");
String line = bufferedReader.readLine();
System.out.println("receive server data: "+line);
} finally {
client.close();
}
}