小鸟的作文开头:用VB 编写的聊天程序,怎样实现多个用户进行通信

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 23:50:08
怎么样可以实现服务器端和客户端都可以同时显示,各自的发送信息,请给个提示,最好是段代码,还有怎么能让两个客户端进行能信?

我也写过聊天程序,一般来说也就是使用winsock控件来通讯,我认真想过,但也没有想到特别方便的方法。我的做法是这样的:所有用户都有一个sc(0)在监听某个端口,比如1234。每次需要发送数据到其它计算机的时候,就load sc(newindex),用这个新load出来的winsock来发送到那个用户的1234端口。为了可以及时回收,用一个集合来记录sc()中哪个下标正在使用,以决定在load的时候newindex的数字。当数据发送完毕,就unload sc(finishindex),并从集合中把下标退出来。实际上在局域网发送文本消息几乎不需要多长时间,所以就算你在狂发信息,(我试过监视sc的数目)一般来说就是一个sc(0)在监听(当然这个是一直不会关的),一个sc(1)在发送,已经极少碰到load一个sc(2)的情况了。使用该方法的确能有效的保证在多用户聊天的情况下保证发送和接受都正确。
至于显示消息则很简单了。在接收方sc(0)的收到消息事件中将信息提取出来放到某个textbox即可,而发送方则可以在消息发送完毕的事件中将信息放到textbox中。
如果你看得不是很明白,我可以贴出我的部分代码,或者给你作进一步讲解。

每个客户端一个ID,客户端发消息时选择全体或特定ID,服务端根据客户端发消息的类型决定是转发给所有其它客户端还是特定客户端。了解了winsock控件数组的用法后这个完成起来并不是很复杂