使用套接字和线程的C#服务以及PHP Web界面PHP套接字

问题描述

|| 嗨,希望有人能帮助我。 我的.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()
。您必须将数据存储在目标线程可以访问的位置,并让目标线程等待并检查新消息。 或者,您可以只将连接到“超级服务”的套接字存储在该字典中,而不用尝试控制线程。