C语言开发socket多人聊天程序,程序员的逆天之路!

这篇文章主要为大家详细介绍了socket多人聊天程序C语言版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

C语言开发socket多人聊天程序,程序员的逆天之路!_第1张图片

 

首先,不要一步登天直接解决多人聊天这个问题,先把问题化简。

1.多人聊天的核心问题是服务器如何标识不同的客户端,如何根据客户端的需求转发消息给指定客户端。

2.多人聊天转化为C-C聊天,但是不再是直接C-C,而是通过server转发消息,所以变成==>C-S-C。

3.server如何允许2个client同时连接,设置listen函数的第二个参数,最大连接数。

4.server如何标识两个client,用一个结构体数组来存放两个client的信息。

欢迎初学和进阶中的同学,加小编C/C++编程学习qq群:825414254获取C/C++编程学习资料噢!

C语言开发socket多人聊天程序,程序员的逆天之路!_第2张图片

 

5.server如何转发消息给client,很简单,先接收到的发送给还没接收到的。如图:

C语言开发socket多人聊天程序,程序员的逆天之路!_第3张图片

 

6.server如何管理两个client的连接状态,连接成功很简单,就是accpet成功后就是连接成功了。但是怎么判断连接断开呢?这个涉及到的select函数的使用,有点复杂~,所以我就简单的用了一个send函数发送一个空消息来判断是否断开连接,这个不严谨,容易出BUG,但是实践起来简单就使用了它。

7.要用线程来管理接收消息、发送消息、接受请求、管理连接状态。

技术要点:C语言线程函数的使用。

C语言开发socket多人聊天程序,程序员的逆天之路!_第4张图片

 

例子:

C语言开发socket多人聊天程序,程序员的逆天之路!_第5张图片

 

1V1,C-S-C聊天例子:

编写环境:win10,VS2015

效果图:

C语言开发socket多人聊天程序,程序员的逆天之路!_第6张图片

 

server code:

C语言开发socket多人聊天程序,程序员的逆天之路!_第7张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第8张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第9张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第10张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第11张图片

 

client code:

C语言开发socket多人聊天程序,程序员的逆天之路!_第12张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第13张图片

 

C语言开发socket多人聊天程序,程序员的逆天之路!_第14张图片

 

这程序还有一些BUG,其中最大的就是关掉一个连接后CPU使用率疯涨,我测试过我想到的可能,还是找不到结果~,希望有大神懂的告知一下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多小编

C语言开发socket多人聊天程序,程序员的逆天之路!_第15张图片

你可能感兴趣的:(C语言,计算机,C++,c/c++,互联网,编程,编程知识)