Socket、ServerSocket有什么区别,分别出现在哪端、怎样使用?
时间: 2024-02-05 08:12:23 浏览: 23
Socket和ServerSocket都是Java中用于网络编程的类,其中Socket是用于客户端与服务端之间的通信,而ServerSocket则是服务端用于监听客户端请求的类。
Socket通常出现在客户端,用于建立与服务端的连接并进行通信。使用Socket需要指定服务端的IP地址和端口号,然后通过Socket的输入输出流进行数据传输。
ServerSocket通常出现在服务端,用于监听客户端的连接请求。当客户端发起连接请求时,ServerSocket会接受请求并创建一个Socket实例与客户端进行通信。使用ServerSocket需要指定服务端的端口号,并通过accept()方法接受客户端的连接请求。
示例代码:
客户端使用Socket连接服务端:
```java
Socket socket = new Socket("127.0.0.1", 8888);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello Server".getBytes());
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
System.out.println(new String(buffer, 0, length));
socket.close();
```
服务端使用ServerSocket监听客户端连接请求:
```java
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
System.out.println(new String(buffer, 0, length));
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello Client".getBytes());
socket.close();
serverSocket.close();
```