socket编程请教 需要实现这样的功能,向远程主机发送ping数据包,根据返回的包判断是否是通的。现在实现的思路是接受和发送分开处理,先把测试包全部发送出去,等了一段时间后开始接受分析。我的问题是,完成这个功能需要用到socket的什么函数,如果发送包直接用sendto的话,那么接受的时候尽管ip是通的,但是recvfrom函数为什么总是提示超时? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 接受的代码是这样的:WSADATA wsa;WSAStartup(MAKEWORD(2, 1), &wsa);OCKET sockRaw = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, 0);fd_set fds;FD_ZERO(&fds);FD_SET(socket, &fds);int nStatus = select(0, &fds, NULL, NULL, &timeout);调试发现问题在select函数,上面select函数返回的是0,所以就是超时的。那么请问:1。刚建立的socket为什么是不可读的?2。发送和接受数据是不是要bind端口才可以? 1、刚建立的socket当然是不能读的要进行连接操作(connect、listen)以后,才能用select判断是否有连接、读、写等请求2、不一定 ouyh12345(五岭散人),我这里不是面向连接的,不需要connect和listen吧,是不是要在bind之后才能接受? bind,WSAAsyncSelect试试,我对网络也不熟,大家一起研究嘛. 发送create bind connect send 接受create bingd recvselect等IO处理是后话了 现在问题解决了一些,在ip少的情况下,发送出去的包能够正确返回,但是ip增大到几百个的时候,又出现了上述问题,就是有些现实是通的ip但是却没接受到包。我的问题是,在有大量的包到来的时候,recvfrom这个函数能不能正确接受到发送过来的每个包,会不会出现丢包的现象? 我这好像就是测试的ip多了的话,就有一些ip的包收不到,是不是可以分开接受? 哪位大哥给个计算MD5值的函数代码? 如何调用参数是struct Range * Range的函数 请大侠们帮忙纠错~ 哪位仁兄帮我写下代码啊,重谢 那位仁兄能给提供一个mfc类库层次图 有谁知道Hot Key控件如何使用? 如何将LISTBOX分隔,在哪里分隔? MFC 如何播放WAV文件 我怎么不对???????? 请教关于showwindow的问题 socket中的recvfrom函数
WSADATA wsa;
WSAStartup(MAKEWORD(2, 1), &wsa);OCKET sockRaw = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, 0);fd_set fds;
FD_ZERO(&fds);
FD_SET(socket, &fds);
int nStatus = select(0, &fds, NULL, NULL, &timeout);调试发现问题在select函数,上面select函数返回的是0,所以就是超时的。那么请问:1。刚建立的socket为什么是不可读的?2。发送和接受数据是不是要bind端口才可以?
要进行连接操作(connect、listen)以后,才能用select判断是否有连接、读、写等请求2、不一定
接受create bingd recvselect等IO处理是后话了
我的问题是,在有大量的包到来的时候,recvfrom这个函数能不能正确接受到发送过来的每个包,会不会出现丢包的现象?