教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

江南大学TCPIP群聊私聊设计

来源:网络收集 时间:2026-08-11
导读: TCP/IP网络协议大作业 题 目: 基于TCP的网络通信 班 级: 计科1203班 姓 名: 学 号: 1030412313 ? 摘要 本实验基于TCP/IP协议实现客户机/服务器模式下带有用户注册,登录验证功能的互联网聊天系统。通过有连接服务为主体,无连接服务为辅,实现一 对一私

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字,全部文档内容请下载后查看。喜欢就下载吧 ……
江南大学TCPIP群聊私聊设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615187.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)