tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)

tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)

ID:3664102

大小:1.76 MB

页数:44页

时间:2017-11-22

tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)_第1页
tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)_第2页
tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)_第3页
tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)_第4页
tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)_第5页
资源描述:

《tcpip大作业-基于tcp的网络通信编程c语言版(江南大学)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TCP/IP协议编程大作业课题名称基于TCP的网络通信专业计算机科学与技术班级计算机1206学号1030412612学生姓名王成义物联网工程学院摘要此TCP/IP课程设计实现了基于TCP的客户/服务器通信程序,具体实验过程通过有连接服务为主体,无连接服务为辅并利用事件对象I/O管理来实现。客户机具有注册,登陆,单聊,私聊,在线人数列表,退出等功能。目录一、总体设计41、基本通信协议选取42、通信过程设计43、通信过程数据包设计44、程序流程图5二、客户端程序61、功能:62、原理:63、程序清单6三、服务器端程序191、功能:192、原理:193、程序清单:19四、运行结果351、服务器

2、端截图352、客户端截图37一、总体设计1、基本通信协议选取TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)协议属于传输层协议。TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。而UDP则不为IP提供可靠性、流控或差错恢复功能。TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。本次实验基于TCP/IP协议利用事件对象I/O管理实现基本的聊天功能,包括注册,登录,群聊,私聊及在线人数统计。2、通信过

3、程设计2.1客户端设计a.本地服务器主要功能:1)接收远程服务器转发的消息并显示消息。b.本地客户端主要功能:1)发送建立TCP连接的请求操作;2)发送注册信息,登陆消息及退出请求;3)发送群聊消息,私聊消息,在线人数统计及退出请求。2.2服务器端设计a.远程服务端主要功能:1)监听客户端的连接请求;2)提供注册服务,验证登陆请求和验证功能;3)查看在线人数,发送在线状态;4)发送群聊消息及私聊消息。3、通信过程数据包设计3.1客户端数据包设计:a.注册:‘0’user(用户名)‘@’password(密码)b.登陆:‘1’user(用户名)‘@’password(密码)c.聊天:0)群

4、聊:‘2’user(用户名)‘@’str(内容)1)单聊:‘5’str1(单聊对象名)‘@’user(用户名)‘*’str(内容)2)在线用户‘4’user(用户名)‘@’str(内容)3)退出(登录):‘3’user(用户名)‘@’3.2服务端数据包设计:a.注册应答:‘00’—注册成功‘01’—注册失败—用户名已存在b.登陆应答:‘10’—登陆成功‘12’—用户名不存在‘11’—密码不正确‘1@’—该用户已登陆c.聊天:1)单聊:‘61’—单聊对象不在线‘50’—单聊对象在线‘60’—单聊对象不存在2)群聊:‘30’—广播消息‘31’—非正确用户的消息,不广播3)在线人数:‘40’—

5、显示当前在线人数并发给查询客户4、程序流程图一、客户端程序1、功能:1.1注册:向服务器发送注册信息。然后接收服务器返回的应答信息。1.2登陆:向服务器发送登陆信息。接收服务器返回的应答信息。1.3聊天:登陆成功后,选择群聊或单聊进行聊天,选择在线用户可进行查询当前在线用户,选择退出可退出登录。a.单聊:从在线用户中选择一个,与其单聊b.群聊:向所有在线的用户发送消息c.退出聊天:退出此次聊天,但不断开连接d.退出登陆,断开连接,退出时不需要发送下线信息,直接退出1.4面向连接的客户/服务器程序工作模型:2、原理:客户机在注册或登陆时首先和服务器连接,注册完或登陆失败断开连接,登陆成功不

6、断开连接,使用send和recv发送接收数据,根据上述的数据报的定义,发送相应的数据报。3、程序清单3.1客户端接收器(本地服务器)代码#include#include#include#include#pragmacomment(lib,"ws2_32.lib")#defineDEFAULT_PORT5051//FORRECV#defineBUFFER_LENGTH1000voidMySendMessage(SOCKETsSocket,char*response,intresponseLen,structs

7、ockaddr*cli,intcliLen);voidmain(){intiPort=DEFAULT_PORT;WSADATAwsaData;SOCKETsSocket,wchysSocket;intiLen,wchyiLen;intiSend;intiRecv;charsend_buf[1000];charrecv_buf[BUFFER_LENGTH];structsockaddr_inser,cli,wchy;printf("-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。