关于从 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();
}
我的问题是 return 由 server.accept()
编辑的套接字是服务器端套接字还是客户端套接字?在Java doc.
中没有很好的解释
之所以问这个问题是因为当我运行socket.getPort()
时,它没有return服务器端口1234,相反,它 return 是一个不是我定义的端口,所以,我认为它可能是客户端的套接字。但我不确定。
Listens for a connection to be made to this socket and accepts it. The
method blocks until a connection is made.
这意味着它是服务器。
socket.getPort()
根据 javadoc,
Returns the remote port number to which this socket is connected.
Socket有两端,一端通过OutputStream向另一端发送信息,并通过InputStream从另一端接收信息。另请参阅 Socket 上的 getInputStream() 和 getOutputStream() 方法。
按照您的说法,您可以将套接字视为服务器端,因为 InputStream 正在从已连接到服务器的客户端接收信息,而 OutputStream 正在向客户端发送信息。
通常,一旦使用 server.accept() 方法获取套接字,使用您获取的套接字创建的线程应该用于与客户端通信,以便您的服务器可以同时处理多个客户端同时。
我有一个很简单的问题,但是我被一个教程弄糊涂了。
比如说,我创建了一个服务器并使用端口 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();
}
我的问题是 return 由 server.accept()
编辑的套接字是服务器端套接字还是客户端套接字?在Java doc.
之所以问这个问题是因为当我运行socket.getPort()
时,它没有return服务器端口1234,相反,它 return 是一个不是我定义的端口,所以,我认为它可能是客户端的套接字。但我不确定。
Listens for a connection to be made to this socket and accepts it. The method blocks until a connection is made.
这意味着它是服务器。
socket.getPort()
根据 javadoc,
Returns the remote port number to which this socket is connected.
Socket有两端,一端通过OutputStream向另一端发送信息,并通过InputStream从另一端接收信息。另请参阅 Socket 上的 getInputStream() 和 getOutputStream() 方法。
按照您的说法,您可以将套接字视为服务器端,因为 InputStream 正在从已连接到服务器的客户端接收信息,而 OutputStream 正在向客户端发送信息。
通常,一旦使用 server.accept() 方法获取套接字,使用您获取的套接字创建的线程应该用于与客户端通信,以便您的服务器可以同时处理多个客户端同时。