CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

请问:是不是服务器端每调用一次Send函数想客户端发送消息,客户端就会收到OnReceive通知?

楼主Sword_Sharp(多米诺)2003-11-02 15:44:27 在 VC/MFC / 网络编程 提问

如题!  
  我在服务器端程序上用一个循环向客户端发送字符串,比如:  
  for(i   =   0;   i   <   10;   i++)  
  {  
      MySocket.Send(MyString,   strlen);  
  }  
  然后在客户端的OnReceiv   事件中写接收的程序:  
   
  void   MySocket::OnReceive()  
  {  
      char   buffer[1024];  
      int   nSize;  
      nSize   =   MySocket.Receive(buffer,   1024);  
      buffer[nSize]   =   '\0';  
  }  
  我得本意是,当服务器每发送一次字符串,客户端就接受到一次OnReceive消息,然后用上面的代码接受一个字符串,可是结果不对。所以我想问   是不是服务器端每调用一次Send函数想客户端发送消息,客户端就会收到OnReceive通知? 问题点数:20、回复次数:11Top

1 楼sevencat(七猫)回复于 2003-11-02 15:57:41 得分 10

有可能你会一次将他们全部收到。以前的协议全是在一个命令的最后加上换行符。0x0d0x0a或者用\r\nTop

2 楼Sword_Sharp(多米诺)回复于 2003-11-02 16:06:43 得分 0

to:   sevencat(七猫)    
        不好意思,我还是不太明白“以前的协议全是在一个命令的最后加上换行符。0x0d0x0a或者用\r\n”   可以详细些吗?Top

3 楼Sword_Sharp(多米诺)回复于 2003-11-02 16:39:39 得分 0

upTop

4 楼sevencat(七猫)回复于 2003-11-02 16:46:20 得分 0

就像POP3协议。一般是一行一行的发送。  
  这样知道在哪里结束了。  
  pSOcket->Send("RETR   1\r\n");  
  pSocket->Send("QUIT\r\n")这样发送的。  
  或者是根据包来发送,包头部长度一定,里面有个数字是表示长度的。这样也可以。Top

5 楼sgnivy(插里一试)回复于 2003-11-02 21:44:59 得分 0

不,建议你用api   来写  
   
  别用类,要用的话,csocketfile类和文档累Top

6 楼mjs2000(宁静致远)回复于 2003-11-03 13:03:17 得分 10

是这样的,Socket你适用流的方式,所以你发送一次可能会接收到几次  
   
  也就是说可以发生多次OnReceive(你的发送数据太多),还有要用SetSockOpt设定接受和发送的缓冲区大小Top

7 楼lzzqqq(Jonersen)回复于 2003-11-04 15:37:54 得分 0

不是!!!Top

8 楼Sword_Sharp(多米诺)回复于 2003-11-05 09:25:44 得分 0

谁有相关的例子吗?Top

9 楼mjs2000(宁静致远)回复于 2003-11-05 10:15:32 得分 0

你不是自己已经写了一个测试的例子了吗?  
   
  你只要把数据发送多一点(大于你的接收缓冲区),就可以接收到多次onreceiveTop

10 楼xxc6(过儿)回复于 2003-11-05 10:36:20 得分 0

我感觉写socket的程序最好不用mfc的类,它是异步socket,不好控制,直接用api来写,很好控制Top

11 楼lostgdi731(O_O)回复于 2003-11-20 16:40:54 得分 0

to   mjs2000(宁静致远)    
  按你的意思就是发送和接收有默认的大少的缓冲区吧?那么默认的是多少?或请你说得更清楚点。谢谢Top

相关问题

  • 如何通过__doPostBack函数,调用服务器端的函数?
  • 函数调用
  • 函数调用
  • 调用函数
  • 函数调用
  • 函数调用
  • 函数调用?
  • 函数调用函数
  • 为什么我的程序会不停的调用OnReceive函数?
  • 客户端如何调用服务器端的函数?

关键词

  • 客户
  • socket
  • onreceive
  • 发送
  • 缓冲区
  • 客户端
  • 接收
  • send

得分解答快速导航

  • 帖主:Sword_Sharp
  • sevencat
  • mjs2000

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo