- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《基于TCP的简单一对一聊天程序设计1
基于TCP的简单一对一聊天程序设计
一、课程设计目的
1、通过课程设计,使学生理论联系实际,在实践中进一步了解计算机网络体系结构,深入理解TCP/IP参考模型
2、培养学生分析、解决问题的能力,提高学生动手能力。
3、使学生掌握搜集资料、调查研究、整理报告的方法。
4、初步掌握网络应用程序开发技术以及互联网的应用技术。
二、课程设计的要求及原理
1、课程设计要求。实现一个一对一的聊天程序。其基本过程如下:服务器首先启动,创建套节字等待客户连接;客户启动以后,创建套届字,然后和服务器建立连接;连接建立以后,客户机和服务器可以通过建立的套节字连接进行通信。服务器和客户端可以是一台电脑上的两个进程,也可以使分别部署在两台电脑上。
2、课程设计原理。
客户服务器模型。它是指客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。一个在建立分布式应用时最常用的范例。在这种方案中客户应用程序向服务器程序请求服务。这种方式隐含了在建立客户机/服务器间通讯时的非对称性。客户机/服务器模型工作时要求有一套为客户机和服务器所共识的惯例来保证服务能够被提供(或被接受)。这一套惯例包含了一套协议。它必须在通讯的两头都被实现。根据不同的实际情况,协议可能是对称的或是非对称的。在对称的协议中,每一方都有可能扮演主从角色;在非对称协议中,一方被不可改变地认为是主机,而另一方则是从机。无论具体的协议是对称的或是非对称的,当服务被提供时必然存在客户进程和服务进程。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被惊醒并且为客户提供服务-对客户的请求作出适当的反应。虽然基于连接的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过数据报套接口提供的。TCP协议被称作一种端对端协议。这是因为它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收资料以及终止连接。传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化。即使在 Internet 暂时出现堵塞的情况下,TCP也能够保证通信的可靠。IP协议只保证计算机能发送和接收分组资料,而TCP协议则可提供一个可靠的、可流控的、全双工的信息流传输服务。coutstring;等的输出处理方法。因为服务器是一只提供服务的,也就是说服务器一直是运行的状态,时刻等待着新的客户端提出连接请求,所以就需要使用到多线程的方法。Socket类的实例的accept方法是一个阻塞式的方法,如果只是用进程来表示新的客户端,那么在现有进程没有结束的情况下,新的客户端在发送连接请求之后程序将不能继续向下执行,所以应该应用比进程更小的线程来解决这一问题。
四、程序编写
1、客户端与服务器端用到的相关类
class CIPMessage
{
public:
CIPMessage();
~CIPMessage();
void Init(string sIpAddress, int iPort);
int SendMessagePort(string sMessage);
int RecMessagePort();
bool IsConnected(){return m_bIsConnected;}
private:
bool m_bIsConnected; // true - connected false - not connected
string m_sServerIPAddress;
int m_iServerPort;
SOCKET conn; // socket connected to server
};
class CChatServer
{
public:
CChatServer();
~CChatServer();
bool IsConnected(){return m_bIsConnected;} // 返回连接状态
void StartListenClient(); // Listen to client
int SendMessagePort(string sMessage); // 向所有客户端发消息
int RecClient(SOCKET sRecSocket); //接收客户端数据
private:
bool m_bIsConnected; // true - connected false - not connected
int m_iServerP
您可能关注的文档
- 《基于Androd手机平台的买火车票软件的设计与实现.doc
- 《市场营销大作业.doc
- 《市场营销大纲.doc
- 《市场营销学2015年下半年第一次作业.doc
- 《市场营销学516个名词解释.docx
- 《市场营销学》第一次辅导提纲第1章.doc
- 《市场营销学习体会.doc
- 《市场营销学作业封面模板新.doc
- 《市场营销学名词解释.doc
- 《市场营销学在的传播发展.doc
- 2025年服务行业技能考试-前厅服务员考试近5年真题集锦(频考类试题)带答案.docx
- 2025年服务行业技能考试-宅急送业务考试近5年真题荟萃附答案.docx
- 2025年服务行业技能考试-化妆师考试近5年真题集锦(频考类试题)带答案.docx
- 2025年服务行业技能考试-宠物美容师考试近5年真题荟萃附答案.docx
- (八省联考)2025年天津市新高考综合改革适应性演练数学试卷带解析及完整答案【各地真题】.docx
- 2025年服务行业技能考试-宠物美容师考试近5年真题集锦(频考类试题)带答案.docx
- 全科医学练习试卷19(共619题).pdf
- 2025年服务行业技能考试-客户服务管理师考试近5年真题荟萃附答案.docx
- 2025年服务行业技能考试-客户服务管理师考试近5年真题集锦(频考类试题)带答案.docx
- 2025年服务行业技能考试-家政服务员考试近5年真题荟萃附答案.docx
文档评论(0)