关于so​​cket的问题!(客户/服务器)

时间:2010-01-20 08:44:47

标签: java sockets

我无法理解为什么它使用两个不同的插座请帮助我谢谢。

客户端将通过套接字9123请求文件 然后,服务器将从服务器通过套接字8123将文件发送到客户端 一旦请求文件,每个客户都会听到它。

2 个答案:

答案 0 :(得分:1)

你需要更好地解释它......

  • 每个客户端是否监听UDP端口8123,并且服务器应该同时与所有客户端进行通信 - 如果是这样,那就是UDP套接字,并且您无法保证客户端收到该文件。

  • 每个客户端是否都在侦听TCP端口8123(所以服务器必须再次连接到首先要求提供该文件的客户端?) - 这不是一个好主意,因为你已经拥有了建立客户端 - 服务器连接(在端口9123上 - 技术上,一旦你accept()服务器中的连接,通信从9123移动到开放的高端口) - 你只需要产生一个将发送文件的线程并且服务器套接字可以继续接受来自其他客户端的连接。如果您必须在一个端口上接收请求并在另一个端口上发送文件(为什么?),只需在收到请求后创建一个新套接字,将其连接到客户端,然后通过它发送文件 - 但是您真的需要考虑为什么是像那样实现它。

答案 1 :(得分:0)

TCP连接在两个端口号之间。客户端有一个用于传递回复的端口号,服务器有一个端口供客户端发送请求。