利用回调函数和CSocket建立网络程序

原创 2001年11月27日 16:55:00

 

     在使用CSocket使用中的一些经验,特贴出来跟大家共享。

     先利用VC建立一个工程(单文档、多文档或对话框均可),以下以单文档工程为例。

     在工程中加入CSocket类的继承类CServerSock。在CServerSocket类中加入CMyView* m_pView,修改CServerSocket的构造函数CServerSocket::CServerSocket(CMyView* pView){m_pView=pView},这个类监听客户端连接;再加入CClientSock类,同样继承于CSocket,同样如上修改CClientSock的构造函数;服务器端开始连接的代码如下:

再CMyView类中(错误代码自己实现)

CServerSock* m_pServer;

CClientSock* m_pClient;

WSADATA wsa;

AfxSocketInit(&wsa);

m_pServer=new CServerSock(this);

m_pServer->Create(MY_PORT,SOCK_STREAM,MY_IPADD);

m_pServer->Listen(MY_MAXNUMBER);

在CServerSock类中重载虚拟函数OnAccept

m_pView->Accept();//回调CMyView类中的Accept函数;

CMyView类中新建函数Accept

m_pServer->Accept(m_pClient)

在CClientSock类中重载虚拟函数OnReceive

m_pView->Recv();//回调CMyView类中的Recv函数;

CMyView类中新建函数Recv

m_pClient->Receive(buf,bufsize);

至此服务器端准备完毕

在客户端里同样添加CClientSock类,同样修改构造函数,重载虚拟函数OnReceive

m_pView->Recv();//同上CMyView里的Recv()函数是接受消息的;

客户端的连接操作是

CClientSock* m_pClient;

WSADATA wsa;

AfxSocketInit(&wsa);

m_pClient=new CClientSock(this);

m_pClient->Connect(SERVER_ADD,SERVER_PORT);

现在已成功连上服务器,可以进行通讯了。

请斧正,欢迎跟我交流scxy78@yeah.net

 

MFC下CSocket 编程聊天室小项目

最近要做一个聊天室的网络编程小项目,同事给我一份源码,也能运行,但是有很多的bug,还有很多不太合理的地方。本来就想着把代码看懂就行了, 可是有很多的内存泄露问题,于是决定自己动手写一个。在写的过程中...
  • u011423435
  • u011423435
  • 2013年07月29日 20:23
  • 1168

CSocket进行UDP通信

客户端: MySocket类 1 class MySocket : public CSocket 2 { 3 public: 4 MySocket(); 5 ...
  • weili82830
  • weili82830
  • 2013年01月24日 10:31
  • 5559

CAsyncSocket与CSocket的区别-同步和异步socket

MFC对SOCKET编程的支持其实是很充分的,然而其文档是语焉不详的。以至于大多数用VC编写的功能稍 复杂的网络程序,还是使用API的。故CAsyncSocket及CSocket事实上成为疑难,群众...
  • Sayesan
  • Sayesan
  • 2015年02月04日 16:21
  • 797

MFC网络编程,CSocket,网络通信,网络聊天室

CSocketServer BOOL CCSocketServerDlg::OnInitDialog() { //时刚开始接收的按钮无效 m_recv.EnableWindow(false);...
  • u012388338
  • u012388338
  • 2014年04月16日 10:34
  • 825

Windows平台TCP通信程序实现-基于MFC CSocket类

本文设计并实现了TCP通信的客户端程序,基于MFC CSocket类,主要分享了程序设计中遇到的问题和相应的解决思路,演示了软件最终实现的效果,最后给出了客户端可执行程序和完整源代码的下载地址,供大家...
  • qq813480700
  • qq813480700
  • 2017年06月21日 10:53
  • 512

CAsyncSocket与CSocket的区别 MFC网络编程

一、CAsyncSocket与CSocket的区别 前者是异步通信,后者是同步通信;前者是非阻塞模式,后者是阻塞 模式。另外,异步非阻塞模式有时也被称为长连接,同步阻塞模式则 被称为短连接。为了...
  • xgx198831
  • xgx198831
  • 2012年04月30日 16:25
  • 3708

关于CSocket类的Receive超时的问题

前几日碰到一问题,当CSocket的Receive阻塞时,如何进行超时处理。由于程序是在多线程中使用Socket通信,开始时是在主线程中用定时监测Receive函数,当超时后,结束通信。但问题是CSo...
  • happyparrot
  • happyparrot
  • 2007年10月19日 14:46
  • 10637

CAsyncSocket及CSocket的区别和用法

文章来源:http://blog.chinaunix.net/uid-20743151-id-326359.html
  • libaineu2004
  • libaineu2004
  • 2014年10月23日 14:06
  • 8464

CSocket详解

CSocket的用法 CSocket在CAsyncSocket的基础上,修改了Send、Recieve等成员函数, 帮你内置了一个用以轮询收发缓冲区的循环,变成了同步短连接模式。 短连接应用简单...
  • rankun1
  • rankun1
  • 2015年12月23日 10:06
  • 2053

钩子函数与回调函数的区别

回调函数 钩子函数 有什么区别  分享| 2014-11-17 13:59小妖有爱270 | 浏览 907 次  编程语言 举报| 2014-11-18 10:37 ...
  • g200407331
  • g200407331
  • 2016年04月20日 17:38
  • 697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用回调函数和CSocket建立网络程序
举报原因:
原因补充:

(最多只允许输入30个字)