网络通信基础——MFC简单服务器客户端TCP通信
来源:互联网 发布:软件需求分析报告模板 编辑:程序博客网 时间:2024/05/19 11:44
今天看了下MFC的网络通信基础,把一些心得写写。
首先看看TCP的通信流程
新建了两个工程,一个服务器工程,一个客户端工程,别的不说,直接从使用顺序来分析程序的调用关系。
首先点击服务器界面上的开始监听,
m_sockListen.Create(10000);//创定并绑定端口,都是继承父类得来的函数
m_sockListen.Listen();//开始监听端口//监听端口开始以后,会调用m_sockListen的OnAccept,而后调用CTCPServerDlg::OnAccept,等待客户端的连接
//这个函数是等待客户端请求连接的时候调用的
void CTCPServerDlg::OnAccept(){SOCKADDR sockAddr;
int nSockAddrLen = sizeof(SOCKADDR);
CString tmp;
//这是一个阻塞函数吧,没有客户端来连接的时候会一直阻塞在那里
if(m_sockListen.Accept(m_sockServer, &sockAddr, &nSockAddrLen))
{tmp.Format("有客户端连接,来自%d.%d.%d.%d\r\n",
(UCHAR)sockAddr.sa_data[2], (UCHAR)sockAddr.sa_data[3],
(UCHAR)sockAddr.sa_data[4], (UCHAR)sockAddr.sa_data[5]);
//m_szRecv与接收窗口关联的
m_szRecv+=tmp;UpdateData(FALSE);}}
然后就一直开始等待客户端的连接,当客户端连接服务器的时候,
char * lpIP = "192.168.137.4";//服务器地址//客户端连接请求发出后服务器的阻塞方法开始接收,accept——》onaccept,三次握手,没问题就连接成功后就会调用OnConnect成功
m_sockConnect.Connect(lpIP, 10000);//连接服务器MessageBox("测试用:连接服务器成功");
//点击连接服务器之后,Cmysocket会调用onconnect事件响应函数
void CTCPClientDlg::OnConnect(){UpdateData();
m_szRecv += CString("连接成功!\r\n");UpdateData(FALSE);}
至此,服务器和客户端连接成功,进而要做的就是数据的相互传送,调用客户端的发送是,服务器会接受,反之也是,到此,简单通信就能OK了
过程中有一点要提,两个发送和接受窗口与变量相关联,所以操作起来也十分的方便
自己总结就到此,上面纯属自己的理解,如果错误希望帮我指出,多多交流。
下面是这个工程所在书的源码(第四章中)的下载地址:http://ishare.iask.sina.com.cn/f/15590196.html
- 网络通信基础——MFC简单服务器客户端TCP通信
- TCP服务器客户端网络通信
- 《MFC网络通信》Part 2 简单TCP通信
- 基于scoket通信的简单客户端—服务器通信程序
- linux c之网络编程之TCP(服务器和和客户端基础通信)
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用
- Linux C——TCP客户端服务器通信
- 服务器和客户端 tcp通信
- TCP服务器客户端进程通信
- TCP通信客户端简单示例
- C# Socket TCP简单例子(服务器与客户端通信)
- linux 服务器/客户端 tcp通信的简单例子
- 网络基础学习笔记一------TCP通信之客户端
- linux 网络编程之最简单的tcp通信客户端
- MFC网络编程(二):简单TCP通信
- 客户端服务器结构网络通信
- 服务器与客户端简单通信 ——server
- TCP/IP 网络通信基础
- Matlab与C/C++混合编程接口及应用
- PHP日常开发中常用的8个小技巧
- 子类化QStyle实现不同的整体风格
- .PHP中的$_SERVER["HTTP_REFERER"]
- unix环境高级编程-4.14-文件系统
- 网络通信基础——MFC简单服务器客户端TCP通信
- LM3开发板学习笔记--GPIO小灯程序
- ATL小试身手
- (技巧)获取当前月份第一天的日期
- 函数模板与类模板
- struts的status属性
- readResolve()方法与序列化
- 哈佛20条校训
- 调试connman