Java 套接字而不是服务器套接字
尽管ServerSocket类被设计成一般性地侦听传入连接,但我是否可以只使用套接字对象来检索java中的传入数据?如果是,那么在这样做时,我是否需要采取其他预防措施Java 套接字而不是服务器套接字,java,sockets,serversocket,Java,Sockets,Serversocket,尽管ServerSocket类被设计成一般性地侦听传入连接,但我是否可以只使用套接字对象来检索java中的传入数据?如果是,那么在这样做时,我是否需要采取其他预防措施 编辑:感谢您的回答…但是尽管在UDP中只有一个套接字类--DatagramSocket,对吗?服务器套接字用于将()和accept()绑定到本地端口。尽管名称ServerSocket不是Socket,但它仅用于接收连接。完成后,您将从接受传入请求中获得一个套接字,即通信管道。我不相信你可以使用套接字来接收传入的请求,而不使用某种连
编辑:感谢您的回答…但是尽管在UDP中只有一个套接字类--DatagramSocket,对吗?服务器套接字用于将()和accept()绑定到本地端口。尽管名称
ServerSocket
不是Socket
,但它仅用于接收连接。完成后,您将从接受传入请求中获得一个套接字,即通信管道。我不相信你可以使用套接字
来接收传入的请求,而不使用某种连接接收器,如服务器套接字
当使用套接字时,一端必须伸出手来连接到另一端(另一端必须监听该连接)。伸出的一端通常称为客户机。正在侦听的端称为服务器
ServerSocket表示该侦听行为。一旦ServerSocket接收到连接,它将创建一个套接字。所以你实际上需要两者兼用。服务器首先设置ServerSocket,然后使用accept()等待连接。一旦连接到达,这将创建一个套接字
在某些应用程序中,服务器会一直等待更多连接,而在其他应用程序中,此时您可以解除服务器套接字的工作,只需担心套接字
不幸的是,您不能在两侧都有客户端(除非您有第三台服务器,这两台服务器都在连接)因为必须有人监听连接。套接字无法接收传入的连接:只有ServerSocket可以这样做。并且除了ServerSocket.accept()?对于TCP/IP,我认为没有其他方法可以用来接收传入的请求。您可以将其子类化,但底线是它始终依赖于ServerSocket接受机制。但是,尽管在UDP中只有一个套接字类——DatagramSocket,对吗?UDP是无连接的,因此没有与之相当的socket
DatagramSocket
类似于TCP/IP中的ServerSocket
。据我所知,一个IP地址加上一个端口号就是一个套接字(一般来说,不是从java类的角度)。那么这是否意味着DatagramSocket相当于一个既能发送又能接收数据的套接字呢?为什么要避免使用ServerSocket?只是好奇,对不起。这让我感到刺痛已经有一段时间了:)