江南大学TCPIP群聊私聊设计
TCP/IP网络协议大作业
题 目: 基于TCP的网络通信 班 级: 计科1203班 姓 名: 学 号: 1030412313
?
摘要
本实验基于TCP/IP协议实现客户机/服务器模式下带有用户注册,登录验证功能的互联网聊天系统。通过有连接服务为主体,无连接服务为辅,实现一
对一私聊和多对多群聊。
关键词:TCP/IP UDP Windows Sockets 聊天系统
?
1.1基本协议的选取
总体设计
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
本次实验基于TCP/IP协议实现基本的聊天功能,包括注册登录,群聊及私聊。
1.2通讯终端的介绍
按类别,将此聊天系统划分为三大块,分别为: ? 本地服务器:
? 本地服务器接收远程服务器转发的消息并显示消息。 ? 远程服务器:
? 监听客户端的连接请求; ? 提供注册服务,验证登陆请求; ? 查看在线人数,发送在线状态;
? 发送群聊消息及私聊消息。 ? 本地客户端:
? 发送建立TCP连接的请求操作; ? 发送注册信息,登陆消息及退出请求; c) 发送群聊消息及私聊消息。
1.3 程序基本流程
? ? ? ? ? ? ? ?
客户端选择注册信息; 客户端输入注册信息;
服务器接收并处理客户端注册信息; 客户端输入登录信息; 服务器接收并处理登陆信息; 服务器返回登陆成功与否信息; 若登陆成功,客户端选择群聊或私聊; 服务器根据客户端的消息处理群聊或私聊: ? 若是群聊,则服务器将此消息群发;
? 若是私聊,则服务器将此消息发送给对应用户; 此程序基本通讯流程图如下:
Figure 1-3-1客户/服务器程序流程图
1.4面向连接的客户/服务器程序的工作流程
此程序客户/服务器程序的工作流程可大致简化为一下步骤:
a) 服务器先用socket函数来建立一个套接字,用这个套接字完成通信的监听。
b) 用bind函数来绑定一个端口号和IP地址。因为本地计算机可能有多个网址和IP,每一个IP和端口有多个端口。需要指定一个IP和端口进行监听。
c) 服务器调用listen函数,使服务器的这个端口和IP处于监听状态,等待客户机的连接。
d) 客户机用socket函数建立一个套接字,设定远程IP和端口。 e) 客户机调用connect函数连接远程计算机指定的端口。
f) 服务器用accept函数来接受远程计算机的连接,建立起与客户机之间的通信。
g) 建立连接以后,客户机用write函数向socket中写入数据。也可以用read函数读取服务器发送来的数据。
h) 服务器用read函数读取客户机发送来的数据,也可以用write函数来发送数据。
i) 完成通信以后,用close函数关闭socket连接。
?
2.1客户端运行原理
客户端程序
客户端应用程序的工作流程如下:
? 使用WSAStartup()函数检查系统协议栈的安装情况。其调用格式与服务器端调用格
式类似:
WSAStartup(0x0202,&wsaData);
WSAStartup(MAKEWORD(2,2),&wsaData);
? 使用socket()或WSASocket()函数创建客户端套接口。其调用格式同服务器端调用
格式类似:
SOCKET clientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
? 使用connect()或WSAConnect()函数发出与服务器建立连接的请求。常用格式如下:
? ?
connect(clientSocket,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
连接建立后,使用send()或WSASend()函数发送数据,或使用recv()或WSARecv()函数接收数据。使用closesocket()函数关闭套接口。
最后调用WSACleanup()函数,结束Windows Sockets API的使用。
客户端程序流程图如下:
Figure 2-2-1程序流程图
2.2客户端程序说明
1. 客户端当前用户结构 struct users{
int id; ///表示第几个用户 int isOnline; //表示是否在线 char username[10]; //用户名 char passward[10]; //密码 char ip[20]; users *next;
}*user,head,userlogin,*user_online;
2. 客户端连接函数
void connect_server(char argv[]){
…… 此处隐藏:113字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




