有谁能说一下CAsyncSocket::ReceiveFrom的用法?最好有例子说明。

yan13579 2003-04-30 07:15:53
请高手帮我看看:
我在一个CRecUdp(继承于CSocket)类里定义了一个用来接受信息的函数,以供其他类可以调用,如下:
int CRecUdp::RecFrom(char *pBuf, int iLen)
{
return CAsyncSocket::ReceiveFrom(pBuf,iLen,m_recip,REC_PORT);
}
但编译有错,如下:

error C2664: 'int __thiscall CAsyncSocket::ReceiveFrom(void *,int,class CString &,unsigned int &,int)' : cannot convert parameter 4 from 'const int' to 'unsigned int &'
A reference that is not to 'const' cannot be bound to a non-lvalue
其中,m_recip是对方连接机器的IP,REC_PORT是对方连接机器的端号,我已定义成一个宏(#define REC_PORT 10002)。
是不是我用错了ReceiveFrom?正确的应该怎样用呢?能否给几个例子参考一下。
...全文
437 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan13579 2003-05-02
  • 打赏
  • 举报
回复
谢谢了longxg(龙)
yan13579 2003-05-01
  • 打赏
  • 举报
回复
longxg(龙) :
我还是不明白。既然msdn里指出ReceiveFrom的后两个参数是ip地址和端口,那么是不是说ip和端口一定要指明发送方的ip和端口?
即上面的m_recip和uRemotePort一定要是对方的ip和端口,能不能随意给定?例如:
int CRecUdp::RecFrom(char *pBuf, int iLen)
{
CString m_recip;
UINT uRemotePort;
return CAsyncSocket::ReceiveFrom(pBuf,iLen,m_recip,uRemotePort);
}
上面的m_recip和uRemotePort就是随意的,这样行吗?我看有些书是这样写的。
如果是这样的话,就是说m_recip和uRemotePort可以不是对方的ip和端口了!!
唉!!困惑……
愿听高手点化。
longxg 2003-05-01
  • 打赏
  • 举报
回复
int CRecUdp::RecFrom(char *pBuf, int iLen)
{
UINT uRemotePort = 0;
return CAsyncSocket::ReceiveFrom(pBuf,iLen,m_recip,uRemote);
}

有很多人理解错了ReceiveFrom的意义,并不能指定ReceiveFrom从那台电脑接受数据,而是ReceiveFrom能告诉你它接受到的数据来自那里。
longxg 2003-05-01
  • 打赏
  • 举报
回复
可以任意给定。你给的值是不起任何作用的,当这个函数返回以后,m_recip,uRemotePort就包含了数据源方的ip,port。m_recip,uRemotePort是提供存储空间,供ReceiveFrom放入信息。
jiaojianjj 2003-05-01
  • 打赏
  • 举报
回复
gz
yan13579 2003-05-01
  • 打赏
  • 举报
回复
大家帮忙啊

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧