江南大学TCPIP群聊私聊设计资料.docx

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程序流程图

文档评论(0)

1亿VIP精品文档

相关文档