两个线程,一个SERVERSOCKET的问题(很好拿分的)(50分)

  • 主题发起人 主题发起人 吴剑明
  • 开始时间 开始时间

吴剑明

Unregistered / Unconfirmed
GUEST, unregistred user!
哈哈,今天又有几十分入帐(好少),所以想了一个问题给大家,
好把分送给大家啊。
问题:
用了一个SERVERSOCKET监听,一个线程负责接受客户段的请求,并把
客户的IP、请求的数据包转给第二个线程,另一个线程负责接受前一个的线程
发来的包,做出响应,并将结果发回给客户机。
古老的问题,用SENDTEXT/SENDBUF的方法,第二个线程如何准确的发向指定的客户机?
 
你不是把IP和Port转发给第二个线程了么?
 
是啊,但是“如何向一个指定的IP发回应呢?”
SERVERSOCKET虽然得到了IP和PORT,但它却不能象UDP那样,
向一个指定的IP发回应。
 
是的,只能发回音给连过来的端口。不能发给连在其他socket的的client端口
 
在你accept的时候,就得到了socket句柄,你两个线程共享此句柄不就可以了么?
 
hustmouse:请给个DEMO可以吗?
 
同意hustmouse,接受时的事件中有一个参数socket,保留此socket,在另一个线程中引用
此socket,socket.sendtext('received'),不需要知道client的IP。昨天刚刚试过,肯
定好用。但不能向指定IP的客户端发socket。我的意思是此部分由程序完成。

在程序中保存一个链表什么的东西,每次client来连接的时候,保存socket把柄和client的
IP,Client必须首先登陆server因此可以在其连接的时候完成此工作。以后需要向某个ip
发的时候,就先根据IP读出socket把柄不就行了?方法土吗?
 
对,我现在干的活也是用的这个方法,不过我是用的VC
 
好好,茅舍顿开。
虽然我现在还没去试,但原理已经领悟到了。相信一定行。
迟些就把分给大家。

如果大家还有更好的建议,欢迎继续讨论。分可以再加。
 
多人接受答案了。
 
后退
顶部