最近在学习多线程的时候打算做一个简单的多线程socke聊天的程序,结果发现网上的代码都没有完整的实现功能,所以自己实现了一个demo: demo功能大致就是,有一个服务端负责信息转发,多个客户端发送消息,当一个客户端发送消息时,其他的客户端都可以接受到。 服务端: 客户端 ...
目标实现 模拟一个聊天室,任意一个客户端窗口可以发送消息,同时也可以接收聊天室内所有人的消息。 服务器端 客户端 效果截图 发现问题 .exit和return的区别:传送门 .linux用gets会出现警告,由于他没有指定输入字符的大小,如果输入字符大于定义的数组长度的时候,那么就会发生内存越界问题。 而用fgets函数则可以根据定义数组的长度自动截断字符,而消除一些安全隐患。 但是fgets会 ...
2018-09-22 20:43 1 1034 推荐指数:
最近在学习多线程的时候打算做一个简单的多线程socke聊天的程序,结果发现网上的代码都没有完整的实现功能,所以自己实现了一个demo: demo功能大致就是,有一个服务端负责信息转发,多个客户端发送消息,当一个客户端发送消息时,其他的客户端都可以接受到。 服务端: 客户端 ...
本来这次作业我是想搞个图形界面的,然而现实情况是我把题意理解错了,于是乎失去了最初的兴致,还是把程序变成了功能正确但是“UI”不友好的console了,但是不管怎么样,前期的图形界面的开发还是很有收获 ...
多线程开发和Socket技术 一、进程和线程 进程:每个应用程序对应一个进程; 线程:一个进程至少包含一个线程,线程要和CPU进行交互。 多线程并发(可以理解为):"同一时间"执行多件事情,如程序一边执行,一边计数(计时);如人一边吃饭,一边看电视。 多线程并发的本质 ...
要用到多线程以及线程的读写锁,之前写的Socket类、ServerSocket要做相应的改变 因为服务器端要维持着一个存储客户端Socket信息到数据结构,当多个线程同时访问这个结构时,要做同步处理,所以要在适当的时候加上读锁或写锁。 新的ServerSocket类 其中有 ...
之前在学习关于网络tcp和多线程的编程,学了知识以后不用一下总绝对心虚,于是就编写了一个基于tcp和多线程的多人聊天室。 具体的实现过程: 服务器端:绑定socket对象->设置监听数->等待连接->有客户端连接就新建一个线程,这个线程中,一旦就收到这个客户发送 ...
接上篇博文,本文是server端的实现,主要实现的功能,就是现实client的连接。转发client发送的消息。以及client掉线提示等功能,同一时候能够在这这上面扩展和TCP以及线程相关的功能木块。 tcpreceive.h ...
[linux环境编程] TCP通信与多线程编程实现“多人在线聊天室” 一、基本概念 1、TCP通信 TCP(Transmission Control Protocol)就是传输控制通讯协议,是TCP/IP体系结构中最主要的传输协议。其“三次握手”提供了可靠的传送,高可靠性保证 ...
1、创建服务器类 2、创建客户端类 3、服务器处理socket多线程 4、读取输入流多线程 5、发送数据多线程 ...