问题描述
问题描述,正在用C#做一个类似QQ的网络通信的小东西。遇到一个问题。本来的想法是这样的,系统用一个线程来监听UDP,另外一个来监听TCP。UDP采用同步阻塞模式,监听UDP的对象在收到数据以后,会触发一个事件,已经在主窗口中订阅了这个事件。UDP接受到的数据中,包括发送者的相关信息,比如号码。现在要做这样一件事情,根据号码,进行消息分发。判断这个号码对应的对话窗口是否已经打开,若没有打开,则新建,并把最新的聊天内容加进去;如果已经打开,向已经存在的窗口添加数据。窗口对象有添加新信息的方法。现在采取的方法是:当新建一个对话窗口的时候,把这个对象存如全局HASH表中,索引时编号。接受到数据以后,根据数据中的编号,判断是否已经有对话窗口,或新建,放入HASH表,或从HASH表中取出,添加数据。在第一次接受到数据的时候正常。但是接着就再也接受不到数据了,不知道维什么。互操作的问题已经参考MSDN提供的方法,用委托处理了。这样的解决方式是否可行。或者有更好的方式,向大家请教了!!谢谢
解决方案
解决方案二:
可行是可行啊你要调试下程序到底是第二次获取不到这个对象,还是获取到后,对象没有正确处理消息?
解决方案三:
接受消息的地方没有响应。。断点没走到。。
时间: 2024-09-20 23:21:12