- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【基
【基于 TCP 的网络聊天室的设计】-实验指导
基于 TCP 的网 络聊天室的设
计
?
一、实验目的
.掌握通信规范的制定及实现。
.练习较复杂的网络编程,能够把协议设计思想应用到现实应用中。
1.
二、实验内容和要求
.进一步熟悉 VC++6 编程环境;
.利用 VC++6 进行较复杂的网络编程,完成网络聊天室的设计及编写;
三、实验(设计)仪器设备和材料
.计算机及操作系统:PC 机,Windows;
.网络环境:可以访问互联网;
? 四、 TCP/IP 程序设计基础
基于 TCP/IP 的通信基本上都是利用 SOCKET 套接字进行数据通讯,程序一般分为服务器端和用户端两
部分。设计思路(VC6.0 下):
第一部分 服务器端
创建服务器套接字(create)。
服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
接受来自用户端的连接请求(accept)。
开始数据传输(send/receive)。
关闭套接字(closesocket)。
第二部分 客户端
创建客户套接字(create)。
与远程服务器进行连接(connect),如被接受则创建接收进程。
开始数据传输(send/receive)。
关闭套接字(closesocket)。
CSocket 的编程步骤:(注意我们一定要在创建 MFC 程序第二步的时候选上 Windows Socket 选项,
其中 ServerSocket 是服务器端用到的,ClientSocket 是客户端用的。)???
(1)构造 CSocket 对象,如下例:
CSocket ServerSocket;
CSocket ClientSocket;
(2)CSocket 对象的 Create 函数用来创建 Windows Socket,Create()函数会自行调用 Bind()函
数将此 Socket 绑定到指定的地址上面。如下例:
ServerSocket.Create(823); //服务器端需要指定一个端口号,我们用 823。
ClientSocket.Create(); //客户端不用指定端口号。
(3)现在已经创建完基本的 Socket 对象了,现在我们来启动它,对于服务器端,我们需要这个
Socket 不停的监听是否有来自于网络上的连接请求,如下例:
ServerSocket.Listen(5);//参数 5 是表示我们的待处理 Socket 队列中最多能有几个 Socket。
(4)对于客户端我们就要实行连接了,具体实现如下例:
ClientSocket.Connect(CString SerAddress,Unsinged int SerPort);//其中 SerAddress 是服务器
的 IP 地址,SerPort 是端口号。
(5)服务器是怎么来接受这份连接的呢?它会进一步调用 Accept(ReceiveSocket)来接收它,而此时 服务器端还须建立一个新的 CSocket 对象,用它来和客户端进行交流。如下例:
CSocket ReceiveSocket;
ServerSocket.Accept(ReceiveSocket);
(6)如果想在两个程序之间接收或发送信息,MFC 也提供了相应的函数。如下例: ServerSocket.Receive(String,Buffer); //String 是你要发送的字符串,Buffer 是发送字符串的缓冲 区大小。ServerSocket.Send(String,Butter);//String 是你要接收的字符串,Buffer 是接收字符串
的缓冲区大小。
框架实现:
客户端在 MFC 中创建对话框:
void CClientDlg::OnButtonReceive()
{
CString strAddr=50;
unsigned int nPort=5050;
if(!ChatReceive.Create())
{
MessageBox(create failed,Receive,MB_ICONSTOP);
return;
}
else
{
ChatReceive.Connect(strAddr,nPort);
}
char sReceive[1024];
strAddr.Format(sReceive);
ChatReceive.Receive(sReceive,1024,0);
m_strEdit=sReceive;
UpdateData(FALSE);
ChatReceive.Close();
}???
服务器端创建对话框:
void CServerDlg::OnButtonSend()
{
// TODO: Add your control notificatio
您可能关注的文档
最近下载
- 2025年最新劳动合同法全文.docx VIP
- 养老服务机构服务质量星级评定检查细则一.doc VIP
- 中国心血管健康与疾病报告.pdf VIP
- 《中国天然气发展报告(2016)》.docx VIP
- (高清版)B-T 24353-2022 风险管理 指南.pdf VIP
- GB∕T 24353-2022 《风险管理 指南》解读和应用指导材料(雷泽佳编写2024B0).pdf VIP
- 2025年版检验检测机构资质认定评审准则考试试题及答案.pdf VIP
- 前交通动脉瘤破裂伴蛛网膜下腔出血个案护理.pptx VIP
- 临床颅内动脉瘤破裂伴蛛网膜下腔出血的个案护理.pptx VIP
- 检验检测机构资质认定评审准则试题及答案.pdf VIP
文档评论(0)