基于VC++60Socket编程操作实例.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VC60Socket编程操作实例

VC++6.0网络编程Socket编程 作为一个初学者,深感Socket编程入门的困难,但当把一些问题弄懂之后,回过头来看以前遇到的一些问题,才发现 Socket编程其实并没有那么复杂。接下来我就把我遇到的一些困难讲述下,并补上解决的办法。 首先我们要想实现一个简单的点对点网络通信,就应该有一个客户和一个服务器 我们先来做客户端。先按照如下图所示建立好客户对话框模块: 首先创建一个基于MFC AppWizard[EXE] 工程,工程名为Socket__002 (这里是以我的工程名为准,你们也可以自己命名工程。)点击确定只收选择基本对话框,如图: 点击下一步,在Windows Sockets[W]处钩上之后就点击【完成】。 建立如图所示的客户端对话框: 控件属性: 说明:IDC_EDIT1 端口号编辑框,IDC_EDIT3 发送文本框, IDC_IPADDRESS1 IPd地址框,IDC_LIST1 列表框。 现在模块已经建好了,接下来就是写代码了,不过写代码之前我们要先理清思路。 客户端与服务器是怎样来实现通信的呢,其实就是由数据的发送者客户端将要发送的信息写入一个套接字,在通过中间环节传输到接收端服务器的套接字中,就可以由接收端的应用程序将套接字从中取出。因此,两个应用程序间的数据传输要通过套接字来完成,至于两个套接字间是怎么传输的我们就不要管了,我们只要把信息装入套接字中就可以了。 作为一个客户端,应该具备以下功能: 1,、向指定地址的服务器发送连接请求; 2、向已经连接成功的服务器发送信息; 3、主动断开与服务器的连接; 当我们已经知道客户端的功能时就应该想到,我们该怎样用代码实现这些功能呢;当然对于初学者来说编写这些代码还有点困难,我们可以先参考网络上的资料把原理弄懂,这才是我写这篇文章的本意。 VC6.0界面中的工作区点击ClassView 选项卡,右击【Socket_002 classes】-----【NewClass】添加新类 “Client_Socket” 基类为 generic CWnd。 右击 CSocket_002Dlg 为CSocket_002Dlg 类添加共有成员变量 m_StartC; 为了使新建的类与对话框类有关联需要在Socket_002Dlg.h头文件中加入 #include”ClientSocket.h”记住一定要放在第一行。在类定义的public中加入 CClientSocket m_CClientSocket; 同样的道理,在”ClientSocket.h”头文件里加入#include” Socket_002Dlg.h” 为新添加的类Client_Socket 添加成员函数OnConnect(),函数原型void OnConnect(int nErrorCode)。在OnConnect()函数中添加如下代码: void CClientSocket::OnConnect(int nErrorCode)//CAsyncSocket::OnConnect { if(nErrorCode) { AfxMessageBox(连接失败,请你重试!); return ; } ((CSocket_002Dlg*)(AfxGetApp()-m_pMainWnd))-m_ListWords.AddString(连接服务器成功!); ((CSocket_002Dlg*)(AfxGetApp()-m_pMainWnd))-m_ListWords.SetTopIndex( ((CSocket_002Dlg*)(AfxGetApp()-m_pMainWnd))-m_ListWords.GetCount()-1); } 接下来就是对对话框连接按钮创建单击函数,函数内容如下: void CChat_ClientDlg::OnButton1() { // TODO: Add your control notification handler code here if(!m_StartC) { BYTE nFild[4]; CString sIP; UpdateData(); m_ServerIP.GetAddress(nFild[0],nFild[1],nFild[2],nFild[3]); sIP.Format(%d.%d.%d.%d,nFild[0],nFild[1],nFild[2],nFild[3]); m_CClientSocket.Create(); m_CClientSocket.Connect(sIP,m_sPort); m_StartC=~FALSE; } } 断开按钮程序: void CSocket_002Dlg::OnButt

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档