基于tcp的socket编程的聊天工具实现

基于tcp的socket编程的聊天工具实现

ID:11873931

大小:778.50 KB

页数:49页

时间:2018-07-14

基于tcp的socket编程的聊天工具实现_第1页
基于tcp的socket编程的聊天工具实现_第2页
基于tcp的socket编程的聊天工具实现_第3页
基于tcp的socket编程的聊天工具实现_第4页
基于tcp的socket编程的聊天工具实现_第5页
资源描述:

《基于tcp的socket编程的聊天工具实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、摘要沟通是人类社会里不可或缺的一种行为,在信息发达的今天,沟通的方式多种多样,而网络聊天作为一种新的沟通方式,例如MSN、QQ,在现实生活里发挥着重要的作用,网络聊天,已经成为人们生活中一种重要的行为。学习聊天程序的编程,加深对VC网络技术的认识,对于我们来说也是有着十分重要的意义。理解并掌握对话框编程,学习多种技术的融合,从而提高我们的编程水平。聊天程序一般由两大部分组成:服务器端聊天程序和客户端聊天程序。服务器端聊天程序负责接收来自客户端的聊天信息,并根据客户端的要求把这些信息发到一个或多个客户中。客户聊天程序则负责建立和维护与服务器端的连接,向服务器发

2、送本客户的聊天内容,同时从服务器接受对方的响应。功能要求如下:客户端部分:l手动输入服务器端IP地址和端口号进行连接l发送消息给服务器端并显示服务器端回传的消息服务器端部分:l手动建立服务器端与客户端的连接请求l接收所有用户发送的消息l向所有在线用户群发消息471目录1方案比较与选择11.1系统分析与设计11.2程序方案21.2.1方案一:基于TCP的socket编程21.2.2方案二:基于UDP(面向无连接)的socket程序31.3方案比较结果52程序的编程与实现62.1项目创建62.2界面设计62.3代码编写62.3.1CClientSocket72.

3、3.2CServerSocket172.3.3CMessg192.3.4CChatDlg213程序的运行与结果343.1使用说明343.2程序功能演示344讨论及进一步研究建议385课程设计心得396Abstract407参考文献41471方案比较与选择1.1系统分析与设计系统构架方式如下图所示:设计出一个完整的网络聊天程序,使之实现以上基本要求。1.服务端需要完成的三件事1)在特定端口等待连接请求,并需要维护一个客户连接表,已记录所有成功连接。2)及时接受消息,然后转发到客户连接。3)监控连接状态,客户离开或故障时从列表中删除相应表项,并及时更新连接表。2

4、.客户端需要完成的三件事1)建立与维护服务器的连接,并随时监测连接状态。2)把用户输入的信息及时发送到服务端,同时准备好接受,并显示信息。3)在用户退出时关闭连接并保存聊天记录。471.1程序方案1.1.1方案一:基于TCP的socket编程TCP(TransmissionControlProtocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。服务器端程序流程如下:1)创建套接字(socket);2)将套接字绑定到一个本地地址和端口上(bind);3)将套接字设为监听模式,准备接受客户请求(listen);4)等

5、待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept);5)用返回的套接字和客户端进行通信(send/recv);6)返回,等待另一客户请求;7)关闭套接字;客户端程序流程如下:1)创建套接字(socket);2)向服务器发出连接请求(connect);3)和服务器端进行通信(send/recv);4)关闭套接字。在服务器端,当调用accept函数时,程序就会等待,等待客户调用connect函数发出连接请求,然后服务器端接受该请求,于是双方就建立了连接。之后,服务器端和客户端就可以利用send和recv函数进行通信了。

6、因为服务器需要接受客户端的请求,所以必须告诉本地主机它打算在哪个IP地址和哪个端口上等待客户要求,因此必须调用bind函数来实现这一功能。而对客户端来说,当它发起连接请求,服务器端接受请求后,在服务端就保存了改客户端的IP地址和端口的信息。这样,对服务器端来说,一旦建立连接之后,实际上它已经保存了客户端的IP地址和端口号的信息,就可以利用所返回的套接字调用send/recv函数与客户端进行通信。程序流程图如下:471.1.1方案二:基于UDP(面向无连接)的socket程序UDP(UserDataProtocol,用户数据报协议)是与TCP相对应的协议。它是

7、面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境服务器端也叫接收端,对于基于UDP(面向无连接)的套接字编程来说,它的服务器端和客户端这种概念不是很强化,我们也可以把服务器端,即先启动的一端称为接收端,发送数据的一端称为发送端,也称为客户端。服务端程序编写流程如下:1)创建套接字(socket);2)将套接字绑定到一个本地地址和端口上(bind);3)等待接受数据(recvfrom);4)关闭套接字。47虽然面向无连接的socket编程无须建立连接,但是为了完成这次通信,对于接受端来

8、说,它必须先启动以接受客户端发送的数据,因此接收端必

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

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

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