Java网络编程中有哪几种Socket?举例说明它们的功能和使用方法。
时间: 2024-03-15 21:47:02 浏览: 86
在Java网络编程中,有两种常用的Socket,分别是ServerSocket和Socket。
1. ServerSocket
ServerSocket是服务器端用于监听客户端连接请求的类。它创建一个服务器端的Socket,等待客户端的连接请求。当客户端连接成功后,ServerSocket会返回一个Socket对象,通过该Socket对象可以与客户端进行通信。使用ServerSocket的步骤如下:
(1)创建ServerSocket对象并指定端口号;
(2)调用ServerSocket的accept()方法等待客户端连接;
(3)当客户端连接成功后,accept()方法会返回一个Socket对象,使用该Socket对象与客户端进行通信,通信完成后关闭Socket。
示例代码如下:
```java
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接,客户端地址:" + socket.getInetAddress().getHostAddress());
// 与客户端进行通信
// ...
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
```
2. Socket
Socket是客户端用于向服务器端发起连接请求的类。它创建一个客户端的Socket,并与服务器端进行连接。使用Socket的步骤如下:
(1)创建Socket对象并指定服务器端的IP地址和端口号;
(2)调用Socket的connect()方法连接服务器端;
(3)连接成功后,使用Socket对象与服务器端进行通信,通信完成后关闭Socket。
示例代码如下:
```java
try {
Socket socket = new Socket("127.0.0.1", 8888);
System.out.println("已连接服务器,服务器地址:" + socket.getInetAddress().getHostAddress());
// 与服务器端进行通信
// ...
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
```
这里以TCP协议为例进行说明,对于UDP协议,也可以使用DatagramSocket和DatagramPacket类来进行相关操作。
阅读全文