winsock采用udp做点对点通讯。接收端通过Winsock1_DataArrival可以接收到数据。在DataArrival事件中我是这样处理的。收到信息后,使窗体上的一个标记闪动,通知用户有新消息。同时把收到的信息存入变量a中。现在遇到的问题是,当用户收到第一条消息后没有及时查看,当第二条消息发到的时候,变量a就被重新赋值了.第一条消息就没有了。怎么办啊。
高手给个思路,急~~~~~~~~~~~~~~
高手给个思路,急~~~~~~~~~~~~~~
我做的这个是给我们OA系统中加的一个模块,主要用来发送消息和传送文件用的。
而且聊天记录也需要保存。所以我改用数据库了。每次收到消息的时候我就把消息存入数库中,加上未读标记。
然后通知另一个方法,此方法主要控制标记的闪动和读取数据。
实现过程是这样的:先取出一条未读记录,取出的同时把此记录标记为已读。
然后同时判断表中是否还有未读记录。如果有就递归以上操作,直到没有新记录为止。
没想到挺简单的东东做起来这么麻烦。
是什么意思如果说有多条信息未查看的话,就一直闪动,你可以按照这样的思路:
读取一条信息,清空一个数组变量,然后检查一遍数组变量是否全为空,如果是,那就不闪了。否则就继续闪。我说的ListView意思是你可以自选要查看哪条消息,每个Item对应一条消息,选择一个Item就弹出一条消息,并删除该Item,直到ListView为空。
我改用数据库了。在每个客户端都会有一个access数据库。把消息存入,加已读或未读标记。