一台机子两个网口都采用UDP通信,可行吗? 我之前做过SOCKET编程,但是我记得UDP通信,也就是数据报通信时,发送数据时并没有与网卡绑定,那在两个网卡的条件下,系统怎么知道到底是通过哪个网卡发送呢?我对于两个网卡编通信程序没什么经验,麻烦各位多多指教,最好有实例! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sendto的后两个参数不就有目的IP和端口么. 先调用sendto发送数据时是自动绑定的 根据目的地址,和本地的路由表在控制台下面敲入命令route print就可以看到路由表了。系统根据目的地址和路由表表项匹配,找到最匹配的就从那个接口出。没找到从默认路由出 我可能没有说清楚,我的情况是两个网卡连接这不同的网络,这两个网络物理隔离,而我床架CAsyncSocket对象时,应该将该对象与一个网卡绑定才对吧,否则等我调用sendto函数时,系统怎么知道这个CAsyncSocket对象的发送行为应该由哪个网卡来完成呢? 本帖最后由 VisualEleven 于 2010-12-06 10:10:54 编辑 SOCKET udp_sock = CreateUdpSocket(); m_BindAddr.sin_family = AF_INET; //m_BindAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); m_BindAddr.sin_addr.s_addr = inet_addr(bindIp); m_BindAddr.sin_port = htons(bindPort); nRet = bind(udp_sock, (LPSOCKADDR)&m_BindAddr, sizeof(SOCKADDR_IN)); if(nRet == SOCKET_ERROR) { OnError(udp_sock, "Bind Socket Fail", GetLastError()); closesocket(udp_sock); return false; }sendto(udp_sock, data, len, 0, ......... 客户端绑定什么呀,客户端不是直接sendto到指定地址吗? 10楼的,你的意思是不是通过bind函数完成绑定? 创建socket的时候,系统会默认分配一个地址(即ip和端口)当你使用sendto的时候地址是目标地址(当然udp里也可以先connect,然后send)我刚好刚写了一些udp通信的,可以相互讨论哦 可行 我做的就是这个 每个网卡的IP不同 所以绑定到不同的IP后的SOCKET就不同。。 当你创建socket套接字以后,如果首先调用的是sendto(),则可以不调用bind来显式绑定本地地址,系统会自动为你绑定。 本帖最后由 VisualEleven 于 2010-12-06 10:11:15 编辑 如何将DLL注入到指定进程中去? 公司倒闭了,抓紧找工作,帮忙推荐一下上海的软件公司 安装VC6.0SP6B的补丁,要把它安装在哪个文件下面? 我做了一个软件下载的程序,如何计算下载时的速率呢?? 硬件故障 各位大侠,这是一个关于串口读操作的问题,望不啬赐教!(有一位大侠曾经指点过我,但是还有点不明白,故发贴请教) 【求助】wix中如何判别系统位数??? ListCtrl 关于数据库编程的一系列问题,我很为难,经理在逼我呀:( Visual C++程序员该聊天吗 cedit 背景字符 排列组合问题中,是否有直接求第几种排列或组合的算法?
在控制台下面敲入命令route print就可以看到路由表了。
系统根据目的地址和路由表表项匹配,找到最匹配的就从那个接口出。
没找到从默认路由出
m_BindAddr.sin_family = AF_INET;
//m_BindAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
m_BindAddr.sin_addr.s_addr = inet_addr(bindIp);
m_BindAddr.sin_port = htons(bindPort);
nRet = bind(udp_sock, (LPSOCKADDR)&m_BindAddr, sizeof(SOCKADDR_IN));
if(nRet == SOCKET_ERROR)
{
OnError(udp_sock, "Bind Socket Fail", GetLastError());
closesocket(udp_sock);
return false;
}
sendto(udp_sock, data, len, 0, .........
当你使用sendto的时候地址是目标地址(当然udp里也可以先connect,然后send)我刚好刚写了一些udp通信的,可以相互讨论哦