繁体   English   中英

关于从SocketServer返回的Socket对象

[英]about the returned Socket object from SocketServer

我有一个非常简单的问题,但是我对教程感到困惑。

说,我创建一个服务器并使用端口1234:

ServerSocket server = new ServerSocket(1234);

然后,我要求服务器通过以下方式等待请求:

while(true) {
  // is the returned socket represents the server side socket or client side socket???
  Socket socket = server.accept();
}

我的问题是server.accept()返回的套接字是服务器端套接字还是客户端端套接字? Java doc中对此的解释不是很好。

我问这个问题的原因是因为当我运行socket.getPort() ,它没有返回服务器端口1234,而是返回了我未定义的端口,因此,我认为它可能是客户端的套接字。 但我不确定。

监听与此套接字建立的连接并接受它。 该方法将阻塞,直到建立连接为止。

这意味着它是服务器。

根据javadoc的 socket.getPort()

返回此套接字连接到的远程端口号。

套接字有两个端点,其中一端将通过OutputStream向另一端发送信息,并使用InputStream从另一端接收信息。 另请参见Socket上的getInputStream()和getOutputStream()方法。

用您的话来说,您可以将套接字视为服务器端,因为InputStream从连接到服务器的客户端接收信息,而OutputStream向客户端发送信息。

通常,一旦通过server.accept()方法获得了套接字,就应该使用通过获得的套接字创建的线程与客户端进行通信,以便服务器可以同时处理多个客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM