java的socket编程代码
时间: 2023-10-14 15:08:11 浏览: 88
下面是一个简单的Java Socket编程实例:
1. 服务端代码
```
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建一个ServerSocket对象,监听端口8888
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("等待客户端连接...");
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("客户端已连接!");
// 获得输入流
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 获得输出流
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
// 接收客户端数据,并返回响应
while (true) {
String str = br.readLine();
System.out.println("客户端发送的数据:" + str);
if ("end".equals(str)) {
break;
}
pw.println("Server response: " + str);
pw.flush();
}
// 关闭资源
pw.close();
os.close();
br.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 客户端代码
```
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建一个Socket对象,指定服务端IP地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
// 获得输入流
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 获得输出流
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
// 发送数据给服务端,并接收响应
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.print("请输入要发送的数据:");
String message = in.readLine();
pw.println(message);
pw.flush();
String response = br.readLine();
System.out.println("服务端响应:" + response);
if ("end".equals(message)) {
break;
}
}
// 关闭资源
pw.close();
os.close();
br.close();
is.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码可以实现一个简单的服务端和客户端的通信,客户端可以向服务端发送数据,服务端接收到数据后返回响应。
阅读全文