csocket问题

我想用一个csocket监听本机的一个端口,有数据就接收(UDP),应该如何创建这个csocket,步骤有哪些?可否给个例程,望大侠帮忙,谢谢!可是当没有数据接收的时候,... 我想用一个csocket监听本机的一个端口,有数据就接收(UDP),应该如何创建这个csocket,步骤有哪些?可否给个例程,望大侠帮忙,谢谢!
可是当没有数据接收的时候,程序老是停在receivefrom这里,如果结束接收数据线程的话,会造成消息混乱。
展开
 我来答
百度网友881a6a941
2008-01-31 · TA获得超过5793个赞
知道小有建树答主
回答量:1100
采纳率:0%
帮助的人:1004万
展开全部
MFC里用CSocket异步通讯需要派生一个类,然后重载几个虚函数

至于是 UDP 还是 TCP 主要是在初始化那里区分。

UDP:
ptSocket = new CSSocket(this);
if (!ptSocket->Create(m_eport,SOCK_DGRAM))
{
MessageBox("网络初始化失败!");
return;
}

不需要调用 Listen 而 TCP 则是

pSerSocket = new CServerSocket(this);
if (pSerSocket->Create(800))
{
if (pSerSocket->Listen())
{
return TRUE;
}
}

UDP不存在连接(UDP机制问题)所以不用重载 OnAccept 这个虚函数,另外接受数据时候使用函数 ReceiveFrom 而TCP则是 Receive

UDP 接收数据
pSocket->ReceiveFrom(buffer,500,roip,roport);

TCP方式接收数据

Receive(chr,255);

相同的都需要重载OnReceive来响应接收数据。

当然同步通讯可以直接阻塞。
alpswolf
2008-02-01 · TA获得超过3520个赞
知道大有可为答主
回答量:1989
采纳率:0%
帮助的人:1396万
展开全部
需要把网卡设置为混杂模式!
建议用wincap+winsocket实现.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yilinshop
2008-01-31 · TA获得超过787个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:333万
展开全部
www.vckbase.com 网络部分有详细的介绍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式