好的,所以我发现套接字不可序列化......所以我不能通过TCP传递它们......
我的问题是我有一个家庭作业,我有10个服务器必须在一个套接字上监听(让我们称之为请求)。对于来自写入该套接字的x个客户端中的任何一个的输入。然后,在其中一个服务器进程从请求中读取消息后,它必须通过自己的套接字与该客户端进行通信...
我尝试在服务器端创建每个服务器套接字和请求套接字,然后在连接到服务器时将这些套接字传递给客户端......但这不起作用...
关于我如何做到这一点的任何提示? TCP不是1-1,这真的在我这里玩弄。
答案 0 :(得分:3)
通过TCP连接传递套接字就像尝试通过电话通过电话或尝试传真传真机一样。您需要做的是在相关各方之间组织另一个连接。
编辑:事实上,您所说的任务甚至没有意义:
我有10个必须在一个套接字上监听的服务器(让我们调用它 请求)。
这甚至都不是正确的术语。服务器监听端口而不是套接字,并且10个服务器在一个端口监听是不可能的。他们每个人都必须有自己的端口。
来自写入该套接字的x个客户端中的任何一个的输入。
见上文。客户端不会写入“那个套接字”。他们创建自己的连接到服务器端口的套接字,然后写入。
然后,其中一个服务器进程从请求中读取消息 必须通过自己的套接字与该客户端进行通信
如果服务器已从客户端收到连接,则它已有一个套接字,表示其端点到该连接。所以服务器所要做的就是将响应写回到它读取请求的同一个套接字。
简而言之,您有一个主要的术语问题,但您根本没有软件问题。
答案 1 :(得分:0)
传递套接字对我来说似乎很疯狂。如果您正在尝试编写更好的服务器,那么您将很难击败Netty。我建议你试一试。