serversocket类
时间: 2023-10-24 10:08:00 浏览: 45
ServerSocket类是Java中的一个类,用于创建服务器端的套接字。它允许在指定的端口上监听客户端的请求,并建立与客户端的连接。
ServerSocket类的构造函数可以用来指定服务器监听的端口号。一旦创建了ServerSocket对象,就可以调用它的accept()方法来等待客户端的连接请求。当客户端连接成功后,accept()方法会返回一个Socket对象,该对象表示与客户端建立的连接。
ServerSocket类还提供了一些其他的方法,如getLocalPort()用于获取服务器监听的端口号,close()用于关闭ServerSocket对象等。
下面是一个简单的示例代码,用于创建一个简单的服务器程序:
```
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8000);
System.out.println("服务器已启动,正在等待客户端连接...");
} catch (IOException e) {
e.printStackTrace();
}
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept();
System.out.println("客户端已连接,地址为:" + clientSocket.getInetAddress().getHostAddress());
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine, outputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("客户端发送了:" + inputLine);
outputLine = "服务器已接收到消息:" + inputLine;
out.println(outputLine);
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
以上代码创建了一个ServerSocket对象,并指定监听的端口号为8000。然后通过accept()方法等待客户端的连接请求,一旦连接成功,就会打印出客户端的地址。接下来通过输入流和输出流与客户端进行通信,一旦客户端发送消息,就会将消息输出到控制台,并将消息回复给客户端。最后关闭输入流、输出流、客户端套接字和服务器套接字。