找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3881|回复: 4

[在线等]winston老大可在,我有简单问题请教!

[复制链接]
发表于 2008-11-21 19:34:59 | 显示全部楼层 |阅读模式
设计思想:
2个EDIT控件,分别接受两个信息,比如EDIT1控件:输入内容“1”,EDIT2控件:输入内容“2”,我想把 ”1“和”2“分别发到服务器上该如何处理呢?
客户端代码:
     ACE_OS::strcpy(buf,CharString);
      n=ACE_OS::strlen(buf);
     //发送
    if(new_stream.send_n(buf,n)!=n) ;;============问题出在这里,这里只能发一个EDIT控件内容出去,比如EDIT1控件内容“1”,我同时也想发EDIT2控件内容出去,该如何处理?
      {
//发送失败
MessageBox(_T("发送失败"),_T("错误"),0);
   }

服务端代码:
char recvuseridline[MAXLINE];
//char sendline[MAXLINE];
ACE_INET_Addr client_addr;
//handle由线程传入,实现new_stream与主线程中new_stream建立关联
new_stream.set_handle(handle);
new_stream.get_remote_addr(client_addr);
//接收客户端请求字符串  
ssize_t n=new_stream.recv(recvuseridline,MAXLINE); ;;====================服务端代码这里也只能接受一个EDIT控件内容


老大,不要笑我问这么弱智的问题,针对本问题给我个思路或者简短的代码,让我思路开拓下,先谢过老大了!

论坛的内容我翻了边,Message_Block应该能合理处理这个问题,但根据卷1的思路就是想不出来改如何处理,希望老大针对这个问题指点下,帮我下,网上资料太少了... ...

[ 本帖最后由 marry 于 2008-11-21 19:46 编辑 ]
 楼主| 发表于 2008-11-21 19:45:19 | 显示全部楼层
:Q :Q默默的一直等。。。。。。。。。。。。。。
发表于 2008-11-21 22:30:18 | 显示全部楼层
兄弟,我刚刚看到。
你的应用需求,跟ACE没什么关系。是对网络程序的设计问题。你必须自己去定义应用的协议,因为TCP只识别字节流,至于里面是什么,需要你自己去解析。
这样,对于你的需求,你可以定义一个结构。
比如前面4个字节是后续内容的长度,先读取长度,再继续读取后面的信息内容。你完全可以拼两个这样的结构来组合你的信息。
还有,用XML类型的结构。都是解决办法。

重复一遍,你必须对网络程序有深刻的理解和认识,你需要明白的内容,和ACE没啥关系。ACE只是一个框架,协助你完成复杂的网络程序开发和设计。
 楼主| 发表于 2008-11-24 10:54:25 | 显示全部楼层
嗯,多谢老大,了解了!
经过老大指点,打破我个人认为ACE不需要构建协议就可以自由发送和接受,没有想到和TCPSOCKET编程基本原理一样,也是用自定义协议进行传送,比如下面代码
客户端:
//发送数据
  send_cnt=peer.send_n ((char*)&this->m_frameDataBuf,FRAME_SIZE);
  if(send_cnt!=FRAME_SIZE)
  {
   this->peer.close();
   ACE_OS::strcat(this->lpMsg,"发送数据出错,可能网络故障!");
   return false;
  }


m_frameDataBuf就是我定义的结构体(自定义协议),,然后服务端也用同样的结构进行处理。。。
服务端:
if ((recv_cnt = this->sock_.recv_n (&(this->m_frameReceiveData), INPUT_SIZE)) !=INPUT_SIZE)//<= 0);;注意这里,接受整个m_frameReceiveData结构
{
  ACE_DEBUG ((LM_DEBUG,
   ACE_TEXT ("(%P|%t) Connection closed\n"),recv_cnt));
  return -1;
}

然后服务端可以用
m_frameReceiveData.eidt1进行数据库分解工作,

完毕,挺舒服的!再次感谢老大,希望这种思维对需要的人有所帮助,其实也是一般的解决方案!

[ 本帖最后由 marry 于 2008-11-24 11:31 编辑 ]
发表于 2008-11-24 17:39:12 | 显示全部楼层
改掉你的签名吧。俺们受不了。。。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 07:54 , Processed in 0.018802 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表