基于TCP 协议的简易网络聊天程序 一、设计原理: 即时通信(IM)是指能够即时发送和接收互联网消息等的业务
自 1998 年面世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能
即时通信不再是一个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台
本课题实现简单的及时通讯中的聊天服务
问题定义: 本课题要解决的问题是提供用户自由向另外一个不同的用户发消息的同时接收来自其他用户的消息
可行性研究: 要实现即时通讯的聊天模块,可以在 LINUX 下搭建服务器,在提供给用户客户端程序
客户端和服务器之间通过 TCP 协议实现在线聊天
需求分析: (1)为了实现即时通讯的聊天服务,聊天服务器必须能够同时接入多个用户,所以要支持并发,允许同时在线客户端数量至少大于3 个
(2)要求服务器能接收多个用户的接入请求同时处理已经建立连接的用户的操作
(3)接收用户发过来的信息
(3)正确转发信息到达正确的用户
(4)提供简单的用户操作指令比如显示实时在线的用户
来自不同用户的信息的转发的同步控制(6)
给每个用户一个唯一的ID
总体设计 首先我们应该在设计 LINUX 平台设计服务器并且 C 语言编程
在实现并行处理时可以使用多进程也可以使用多线程,多线程可以方便的实现不同连接间简易的通信,系统开销小所以这里选用它
在连接的协议选择上,因为传送数据量小,这里选择面向连接可靠传输的TCP 协议,相比将套接字嵌入 FILE 留种,这里使用调用常用的tcp 的套接字 API(send,recv )读写缓冲区实现连接的方法
详细设计 客户端:首先用户提供服务器 IP 和端口,然后创建套接字并连接到服务器,连接成功给予操作界面