显然,它返回一个Socket对象 . 这是尝试连接/连接到ServerSocket对象的客户端的套接字吗?
此外,此方法是一次接受来自客户端的一个连接还是多个连接?
要接受传入的客户端连接,必须调用 ServerSocket.accept() 方法 .
ServerSocket.accept()
accept() 方法返回一个Socket,它实际上是为特定客户端(请求连接的客户端)创建的,因此Java for-Client Socket (驻留在Server上),而不是Client-socket.Client 's socket resides on Client' s用于开始沟通 . 下面是它的工作原理:
accept()
Socket
用于 Build 通信的服务器端套接字(但是,基于线程的每个客户端的不同连接): -
ServerSocket serverSocket = new ServerSocket(9000); boolean isStopped = false; while(!isStopped){ Socket clientBasedSocket = serverSocket.accept(); //do something with clientBasedSocket }
客户端套接字: -
Socket s=new Socket("SERVER'S IP",9000);
每次调用accept()方法时只打开一个传入连接 .
根据Javadoc:
public Socket accept() throws IOException
等待传入的客户端(请求) . 假设已使用setSoTimeout()方法设置超时值,此方法将阻塞,直到客户端连接到指定端口上的服务器或套接字超时 . 否则,此方法无限期地阻塞 .
不,它是一个新的 Socket 对象,表示该连接的此 endpoints . 客户端的套接字表示另一个 endpoints .
这个方法一次或多次接受来自客户端的一个连接吗?
一次一个 . 奇怪的问题 . 它为一个连接返回一个套接字 .
2 回答
要接受传入的客户端连接,必须调用
ServerSocket.accept()
方法 .accept()
方法返回一个Socket,它实际上是为特定客户端(请求连接的客户端)创建的,因此Java for-ClientSocket
(驻留在Server上),而不是Client-socket.Client 's socket resides on Client' s用于开始沟通 . 下面是它的工作原理:用于 Build 通信的服务器端套接字(但是,基于线程的每个客户端的不同连接): -
客户端套接字: -
每次调用accept()方法时只打开一个传入连接 .
根据Javadoc:
不,它是一个新的
Socket
对象,表示该连接的此 endpoints . 客户端的套接字表示另一个 endpoints .一次一个 . 奇怪的问题 . 它为一个连接返回一个套接字 .