下面是基于UDP的CAsyncSocket,8080端口是没有任何服务开的,IP是我自己机器上的,为什么一个端口向自己机器上一个没开的端口发数据会触发自己的OnReceive呢?我搞不懂.ms.SendTo(buf,10,8080,"192.168.0.136");
void Csock::OnReceive(int nErrorCode)
{
CString ipstr;
UINT nport;
int len;
LPCTSTR lpctstr=new char[1024];
len=ReceiveFrom((void*)lpctstr,1024,ipstr,nport,0);
AfxMessageBox(lpctstr);
CAsyncSocket::OnReceive(nErrorCode);
}
void Csock::OnReceive(int nErrorCode)
{
CString ipstr;
UINT nport;
int len;
LPCTSTR lpctstr=new char[1024];
len=ReceiveFrom((void*)lpctstr,1024,ipstr,nport,0);
AfxMessageBox(lpctstr);
CAsyncSocket::OnReceive(nErrorCode);
}
解决方案 »
- vista下打开默认浏览器的问题
- 街面上有多个控件,用哪个消息可以捕获到其中任意一个控件的内容发生了变化呢?
- vc单文档标题问题!(新手,不要笑)
- 调用COM时提示 服务器没有在限定的时间内用DCOM注册
- 请教MFC高手:CObList为什么插入时会修改指针?急!100分求
- 为什么vc不能提示某些方法的参数
- 我的浏览器为什么看有的帖子 有些句子显示不出来?
- 一个远程监控问题
- udp通信:电脑上子有一个网卡,这样可以在一台机子上进行udp通信不?
- VC高手请看: 能把含有若干'\0'字符的数组存入数据库吗???
- 请教:"struct tagWNDCLASSW "中的 tag 是什么意思?
- OLE_DB里CDBPropSet的AddProperty的属性问题?
操作系统收到一个数据包候,总是调用最接近的程序来处理。
记得ping程序中,我们不也是用一个socket既发送又接受的吗。