扔掉Socket实现网络编程

扔掉Socket实现网络编程

ID:41033158

大小:33.50 KB

页数:6页

时间:2019-08-14

扔掉Socket实现网络编程_第1页
扔掉Socket实现网络编程_第2页
扔掉Socket实现网络编程_第3页
扔掉Socket实现网络编程_第4页
扔掉Socket实现网络编程_第5页
资源描述:

《扔掉Socket实现网络编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。  客户端  创建一个DialogBased项目:CSockClient。设计一对话框,增加ID_Connect(连接)、ID_Send(发送)、ID_Exit(关闭)按钮,增加ListBox控件IDC_LISTMSG和Edit控件IDC_EDITMSG,并按下表在Cl

2、assWizard中为CCSockClientDlg类添加变量。  ControlIDTypeMember  IDC_EDITMSGCEditm_MSG  IDC_LISTMSGClistBoxm_MSGS  在MySock.ccp中添加以下代码:  #include"CSockClient.h"  #include"CSockClientDlg.h"  在MySock.h中添加以下代码:  public:BOOLm_bConnected;UINTm_nLength;charm_szBuffer[4096];在MySock.ccp中重载各函数MySock::MySock(){m_nL

3、ength=0;memset(m_szBuffer,0,sizeof(m_szBuffer));m_bConnected=FALSE;}MySock::~MySock(){//关闭套接字if(m_hSocket!=INVALID_SOCKET)Close();}voidMySock::OnReceive(intnErrorCode){m_nLength=Receive(m_szBuffer,sizeof(m_szBuffer),0);//下面两行代码用来获取对话框指针CCSockClientApp*pApp=(CCSockClientApp*)AfxGetApp();CCSockCl

4、ientDlg*pDlg=(CCSockClientDlg*)pApp->m_pMainWnd;pDlg->m_MSGS.InsertString(0,m_szBuffer);memset(m_szBuffer,0,sizeof(m_szBuffer));CAsyncSocket::OnReceive(nErrorCode);}voidMySock::OnSend(intnErrorCode){Send(m_szBuffer,m_nLength,0);m_nLength=0;memset(m_szBuffer,0,sizeof(m_szBuffer));//继续提请一个“读”的网络事

5、件,接收Server消息AsyncSelect(FD_READ);CAsyncSocket::OnSend(nErrorCode);}voidMySock::OnConnect(intnErrorCode){if(nErrorCode==0){m_bConnected=TRUE;CCSockClientApp*pApp=(CCSockClientApp*)AfxGetApp();CCSockClientDlg*pDlg=(CCSockClientDlg*)pApp->m_pMainWnd;memcpy(m_szBuffer,"Connectedto",13);strncat(m_sz

6、Buffer,pDlg->m_szServerAdr,sizeof(pDlg->m_szServerAdr));pDlg->m_MSGS.InsertString(0,m_szBuffer);AsyncSelect(FD_READ);}//提请一个“读”的网络事件,准备接收CAsyncSocket::OnConnect(nErrorCode);}  建一对话框IDD_Addr,用来输入IP地址和Port;增加两个Edit控件:IDC_Addr、IDC_Port按下表在ClassWizard中为CAddrDlg类添加变量。  ControlIDTypeMemberIDC_AddrCSt

7、ringm_AddrIDC_PortIntm_Port在CSockClientDlg.ccp中添加代码:#include"AddrDlg.h"protected:intTryCount;MySockm_clientSocket;UINTm_szPort;public:charm_szServerAdr[256];  双击IDD_CSOCKCLIENT_DIALOG对话框中的“连接”按钮,添加以下代码:m_clientSocket.ShutDown(2);m

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

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

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