问题描述
||
嗨,希望有人能帮助我。
我的.net应用程序通过TCP连接
一项服务,我们将致电
\“超级服务\”(读取和发送数据)
我的应用程序有一个开放的套接字供PHP使用
连接到(允许用户通过Web界面使用用户名和密码连接到“超级服务”)
当有人通过PHP连接时,我想要
产生一个线程(这是一个新的
与超级服务的连接)
我最初想到要这样做,因此处理PHP连接的线程与连接到“超级服务”的线程相同,这将使生活变得非常简单。
但是,一旦页面加载完毕,PHP将关闭套接字,并且我仍然需要为该Web界面用户保持与“超级服务”的连接。
因此,我想到了以下方法:
1)PHP连接到打开的套接字
我的应用程序并发送用户名/密码
2)我的应用程序产生了一个新线程
连接到“超级服务”(使用
用户名/通过提供)并创建
一个新的向导
3)那个产生的线程然后放
放入字典(Guid,Thread)并
将Guid报告回PHP
保存在会话中。
4)PHP再次连接到我的应用程序,但是
带有GUID和消息。
5)我的应用找到关联的thead
给该用户/客户端(使用guid)
到那里我能做。
但是,能够向该广告发送信息或从该广告获取信息(然后向该广告发送/获取超级服务)的下一步是卡住我的地方...
另外,还有更好的方法吗?
再次感谢!
注意:将问题重写为更有意义。
解决方法
您实际上无法将消息发送给线程,但可以存储一条消息,告知其他线程可以接听。如果要这样,请查看
Monitor.Wait()
和Monitor.PulseAll()
。您必须将数据存储在目标线程可以访问的位置,并让目标线程等待并检查新消息。
或者,您可以只将连接到“超级服务”的套接字存储在该字典中,而不用尝试控制线程。