以下是使用Java实现的两台电脑可以互相发送消息的程序示例:
Server端代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
// 创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("等待客户端连接...");
// 接受客户端连接,创建Socket对象
Socket socket = serverSocket.accept();
System.out.println("连接来自:" + socket.getRemoteSocketAddress());
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
PrintWriter writer = new PrintWriter(outputStream, true);
String message;
while ((message = reader.readLine()) != null) {
System.out.println("接收到消息:" + message);
// 发送消息给客户端
String response = "服务端已接收到消息:" + message;
writer.println(response);
// 如果客户端发来"bye",则退出循环
if ("bye".equals(message)) {
break;
}
}
// 关闭连接
reader.close();
writer.close();
socket.close();
serverSocket.close();
}
}
Client端代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
// 创建Socket对象
Socket socket = new Socket("127.0.0.1", 9999);
System.out.println("已连接服务端...");
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
PrintWriter writer = new PrintWriter(outputStream, true);
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String message, response;
while (true) {
// 发送消息给服务端
message = console.readLine();
writer.println(message);
// 接收服务端回复的消息
response = reader.readLine();
System.out.println("接收到消息:" + response);
// 如果发送"bye",则退出循环
if ("bye".equals(message)) {
break;
}
}
// 关闭连接
reader.close();
writer.close();
socket.close();
}
}
使用方法:
先运行Server端程序;
再运行Client端程序,与Server端建立连接;
在Client端输入消息,可发送消息给Server端;
在Server端接收到消息后,可回复消息给Client端;
重复步骤3、4直至结束,发送"bye"可以退出程序。