csocket问题
我想用一个csocket监听本机的一个端口,有数据就接收(UDP),应该如何创建这个csocket,步骤有哪些?可否给个例程,望大侠帮忙,谢谢!可是当没有数据接收的时候,...
我想用一个csocket监听本机的一个端口,有数据就接收(UDP),应该如何创建这个csocket,步骤有哪些?可否给个例程,望大侠帮忙,谢谢!
可是当没有数据接收的时候,程序老是停在receivefrom这里,如果结束接收数据线程的话,会造成消息混乱。 展开
可是当没有数据接收的时候,程序老是停在receivefrom这里,如果结束接收数据线程的话,会造成消息混乱。 展开
3个回答
展开全部
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来响应接收数据。
当然同步通讯可以直接阻塞。
至于是 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来响应接收数据。
当然同步通讯可以直接阻塞。
展开全部
需要把网卡设置为混杂模式!
建议用wincap+winsocket实现.
建议用wincap+winsocket实现.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
www.vckbase.com 网络部分有详细的介绍
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询