网络通信基础——MFC简单服务器客户端TCP通信

今天看了下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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值