虽然ServerSocket类设计用于一般侦听传入连接,但是我可以只使用Socket对象并在java中检索传入数据吗?如果是,那么我需要采取任何其他预防措施吗?
编辑:感谢您的答案......但是在UDP中只有一个套接字类 - DatagramSocket对吗?
答案 0 :(得分:5)
ServerSocket
用于将()和accept()绑定到本地端口。尽管名称ServerSocket
不是Socket
,但它仅用于接收连接。完成后,您将收到Socket
来接受传入请求,即通信管道。我不相信您可以使用Socket
来接收传入的请求,而无需使用某种连接接收器,例如ServerSocket
。
答案 1 :(得分:3)
Socket无法接收传入连接:只有ServerSocket可以执行此操作。
答案 2 :(得分:2)
使用套接字时,一端必须伸出并连接到另一端(另一端必须监听该连接)。伸出的结束通常称为客户端。正在监听的结束称为服务器。
ServerSocket表示该侦听行为。一旦您的ServerSocket收到连接,它将创建一个Socket。所以你实际上需要同时使用它们。服务器首先设置ServerSocket,然后使用accept()等待连接。一旦连接到达,这将创建一个Socket。
在某些应用程序中,服务器一直在等待更多连接,在其他应用程序中,您可以在此时停用ServerSocket,只需担心Socket。
不幸的是,双方都没有客户端(除非你有一台连接的第三台服务器),因为有人必须正在监听连接。