winfrom窗体如何判断消息的来源

deepmist 2010-11-29 09:21:44
我用C#做局域网通信软件,用的udp协议,主窗体开一线程监听,有消息发来的话就开一线程打开消息接收窗口,现在遇到的问题就是,同一个人每发一次消息就会弹出一个窗口,我想实现qq那样同一人发送的消息显示在同一个窗口,思路应该如何呢。
谢谢!
...全文
198 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
laj0600310219 2010-12-01
  • 打赏
  • 举报
回复
那消息来的时候,你就先判断窗体实例是否为null,如果不为空,则添加到已经打开的窗体当中去。
戒指 2010-12-01
  • 打赏
  • 举报
回复
deepmist 2010-12-01
  • 打赏
  • 举报
回复
我现在需要的是如何判断这个窗口已经打开,并且将对方发送来的消息显示上去
[Quote=引用 14 楼 zhangldueducn 的回复:]
自己设置唯一标示,根据唯一标示区别如(ip+message)则可用ip进行区别。
[/Quote]
zhangldueducn 2010-12-01
  • 打赏
  • 举报
回复
自己设置唯一标示,根据唯一标示区别如(ip+message)则可用ip进行区别。
deepmist 2010-12-01
  • 打赏
  • 举报
回复
再顶
[Quote=引用 12 楼 deepmist 的回复:]
自己顶一下
[/Quote]
lone25 2010-11-29
  • 打赏
  • 举报
回复
3楼思路不错
deepmist 2010-11-29
  • 打赏
  • 举报
回复
我已经实现了ip+消息的封装传递,
现在就是要解决如何判断与该用户的窗口是否打开
[Quote=引用 6 楼 lijun84 的回复:]
IP + userid(消息头)
[/Quote]
wolftop 2010-11-29
  • 打赏
  • 举报
回复
IP + userid(消息头)
deepmist 2010-11-29
  • 打赏
  • 举报
回复
这个不错
[Quote=引用 3 楼 ly_longyue 的回复:]
根据来源IP 来判断。
用hashtable 根据 IP 或者 其他标识记录 form 标题 或者 name 组合 存储起来
变比form 时删除 hashtable 中的记录
每次收到消息,遍历 hashtable 根据 收到的 ip 检查 form 标题 name 是否存在
存在的话就不用 new form ,只是获取 form 对象,之后 激活窗体到最顶端
[/Quote]
sprc_lcl 2010-11-29
  • 打赏
  • 举报
回复
消息体: 消息 + 用户标识
龍月 2010-11-29
  • 打赏
  • 举报
回复
根据来源IP 来判断。
用hashtable 根据 IP 或者 其他标识记录 form 标题 或者 name 组合 存储起来
变比form 时删除 hashtable 中的记录
每次收到消息,遍历 hashtable 根据 收到的 ip 检查 form 标题 name 是否存在
存在的话就不用 new form ,只是获取 form 对象,之后 激活窗体到最顶端
ToMakeLove 2010-11-29
  • 打赏
  • 举报
回复
根据发送者的IP或是给一个线程之类的区分之
jiezi316 2010-11-29
  • 打赏
  • 举报
回复
udp能不能获得发送者的SOCKET对象?
反正TCP可以,然后你就可以根据IP来判断了。
deepmist 2010-11-29
  • 打赏
  • 举报
回复
我当然知道这样思路,但是你如何判断来的消息是属于谁的呢?
[Quote=引用 9 楼 zhengchao40312018 的回复:]
根據不同的IP+USER開一個線程,該線程只顯示一個窗口,接受同一IP的同一USER的消息
[/Quote]
xxiju203 2010-11-29
  • 打赏
  • 举报
回复
根据发送着的IP来.
zhengchao40312018 2010-11-29
  • 打赏
  • 举报
回复
根據不同的IP+USER開一個線程,該線程只顯示一個窗口,接受同一IP的同一USER的消息

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧