# Java 网络编程
# 网络编程基础
# TCP 编程
# 发送消息
# 服务端
package com.example.network.lesson06;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream inputStream = null;
ByteArrayOutputStream pipeStream = null;
try {
// 1. 创建一个 socket
serverSocket = new ServerSocket(8080);
// 2. 等待客户端连接
socket = serverSocket.accept();
// 3. 读取客户端的消息
inputStream = socket.getInputStream();
pipeStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
pipeStream.write(buffer, 0, len);
}
System.out.println("接收消息");
System.out.println(pipeStream.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
pipeStream.close();
inputStream.close();
socket.close();
serverSocket.close();
System.out.println("关闭");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
# 客户端
package com.example.network.lesson06;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
public class TCPClient {
public static void main(String[] args) {
Socket socket = null;
OutputStream outputStream = null;
try {
// 1. 知道服务器地址
InetAddress serverIP = InetAddress.getByName("127.0.0.1");
int port = 8080;
// 2. 创建一个 socket 连接
socket = new Socket(serverIP, port);
// 3. 发送消息 IO 流
outputStream = socket.getOutputStream();
System.out.println("发送消息");
outputStream.write("Hello".getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
outputStream.close();
System.out.println("关闭");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}