聊天室用户列表功能

来源:互联网 发布:大数据时代是什么 编辑:程序博客网 时间:2024/06/08 17:41

实现类似聊天室的那种用户列表的功能,其基本原理是每次用户登陆到聊天室就给服务器发送一个消息,该消息可以是用户的IP地址、主机名或登陆昵称(这里为方便起见用的是主机名),然后服务器收到消息后就将该消息广播到连接到服务器的所有客户端,这样所有的用户就都有了一个包含其他用户消息的列表了。

下面是简单的代码,仅测试这个功能。

 

服务器端代码:

 

 

 

客户端代码:

 

 

 

由于是初学网络编程,以上代码写的有点乱七八糟。而且还只实现了一个客户端的情况。后面学习中我将尝试多个客户端情况的网络通信程序设计。以及在多客户端情况下当某用户断开连接时去除用户名的功能。

 

 

今天我又学习了select模型,这个模型可以在一个线程里处理多个套接字(好像最多是64个),于是乎我就把昨天写的那程序改了下,把服务器端的代码改用select的处理方式,然后客户端的代码基本差不多,结果能达到预想的处理多个用户连接服务器并向组合框里添加多个用户名的要求。线将改进后的代码贴出来:

 

 这是在一个按钮消息函数里实现的,每次打开服务器后程序都会有点卡,不知道是不是在不停的循环处理套接字的缘故

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击