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的包收不到,是不是可以分开接受? 使用jpeglib库,弹出遇到问题需要关闭? 执行子线程时,主窗口怎么暂停执行,并可以响应消息 一个VC++端口扫描器的问题 急!请问,这是多文档程序的刷新问题吗? 请问如何才能获得windows的进程表 从ADO如何访问ADO.NET返回的XML数据?高难哦 超级难题!!!!感谢指针先生作答!!!如何给弹出对话框中添加cformview视子窗口呀?而且还可以根据对话框中两个按钮来动态切换多个视 请问高手如何才能修改d3d9.dll的Direct3DCreate9接口 vs2010桌面复原与刷新问题 求VC源代码! 请教关于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这个函数能不能正确接受到发送过来的每个包,会不会出现丢包的现象?