社区
网络编程
帖子详情
sendto 后错误值getlasterror为10038
herostarone
2010-11-15 05:50:17
for()
{
sendto(socket,。。。。);
cout<<socket<<endl;
}
发送了一会后socket的值都变了。
getlasterror显示10038,意思是在一个非套接字上尝试了一个操作。
但是我在里面加了一个sleep100ms,就没事,而sleep10ms都有同样的问题,为啥 啊
...全文
1117
7
打赏
收藏
sendto 后错误值getlasterror为10038
for() { sendto(socket,。。。。); cout<<socket<<endl; } 发送了一会后socket的值都变了。 getlasterror显示10038,意思是在一个非套接字上尝试了一个操作。 但是我在里面加了一个sleep100ms,就没事,而sleep10ms都有同样的问题,为啥 啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
herostarone
2010-11-15
打赏
举报
回复
我没关闭它啊,sendto了好多次才出的问题
[Quote=引用 2 楼 ouyh12345 的回复:]
是不是连接被关闭了?
[/Quote]
herostarone
2010-11-15
打赏
举报
回复
没有失败啊,我都sendto好多数据了,中间才出的问题
[Quote=引用 3 楼 visualeleven 的回复:]
socket()函数调用失败
[/Quote]
herostarone
2010-11-15
打赏
举报
回复
已经建立起来了,我都sendto好多数据了,中间才出的问题
[Quote=引用 1 楼 a19860903 的回复:]
sendto是udp发送方式,应该是对方socket还没创建起来
[/Quote]
Eleven
2010-11-15
打赏
举报
回复
10038: An operation was attempted on something that is not a socket.
Eleven
2010-11-15
打赏
举报
回复
socket()函数调用失败
ouyh12345
2010-11-15
打赏
举报
回复
是不是连接被关闭了?
疯狂石头_
2010-11-15
打赏
举报
回复
sendto是udp发送方式,应该是对方socket还没创建起来
发现网络中的活动主机
#pragma pack(4) //#include "stdafx.h" #pragma comment (lib,"Ws2_32.lib") #define WIN32_LEAN_AND_MEAN #include #include #include #include #include #include #include typedef struct iphdr { unsigned int headlen:4; unsigned int version:4; unsigned char tos; unsigned short totallen; unsigned short id; unsigned short falg; unsigned char ttl; unsigned char prot; unsigned short checksum; unsigned int sourceIP; unsigned int destIP; }IpHeader; typedef struct icmphdr { BYTE type; BYTE code; USHORT checksum; USHORT id; USHORT seg; }IcmpHeader; #define ICMP_RCHO 8 #define ICMP_RCHO_REPLY 0 #define ICMP_MIN 8 #define STATUS_FAILED 0xFFFF #define DEF_PACKET_SIZE 32 #define MAX_PACKET 1024 #define MAX_PING_PACKET_SIZE (MAX_PACKET+sizeof(IpHeader)) void fill_icmp_data(char *,int); USHORT checksum(USHORT *,int); void decode_resp(char *,int,struct sockaddr_in *); DWORD WINAPI FindIP(LPVOID pIPAddrTemp); WSADATA wsaData; SOCKET sockRaw; struct sockaddr_in dest,from,end; int fromlen =sizeof(from); char *recvbuf=new char[MAX_PING_PACKET_SIZE]; unsigned int addr=0; long ThreadNumCounter=0,ThreadNumLimit=20; long *aa=&ThreadNumCounter; void main(int argc,char *argv[]) { /*if(argc!=3) { cout<<"输入格式
错误
: start_ip end_ip"<
Error()<
Error()<
ERROR) { cout<<"FAILED TO SEY RECV TIMEOUT"<
Error()<
ERROR) { cout<<"FAILED TO SEY RECV TIMEOUT"<
Error()<
error"
id=(USHORT)GetCurrentThreadId(); datapart=icmp_data+sizeof(IcmpHeader); memset(datapart,'A',datasize-sizeof(IcmpHeader)); } void decode_resp(char *buf,int bytes,struct sockaddr_in *from) { IpHeader *iphdr; IcmpHeader *icmphdr; unsigned short iphdrlen; iphdr=(IpHeader*) buf; iphdrlen=iphdr->headlen*4; icmphdr=(IcmpHeader *)(buf+iphdrlen); if(bytestype!=ICMP_RCHO_REPLY)return; if(icmphdr->id!=(USHORT)GetCurrentThreadId())return; cout<<"活动主机: "<
>16)+(cksum& 0xffff); cksum+=(cksum>>16); return (USHORT)(~cksum); } DWORD WINAPI FindIP(LPVOID pIPAddrTemp) { InterlockedIncrement(aa); char icmp_data[MAX_PACKET]; memset(icmp_data,0,MAX_PACKET); int datasize=DEF_PACKET_SIZE; datasize+=sizeof(IcmpHeader); fill_icmp_data(icmp_data,datasize); ((IcmpHeader*)icmp_data)->checksum=0; ((IcmpHeader*)icmp_data)->seg=0; ((IcmpHeader*)icmp_data)->checksum=checksum((USHORT*)icmp_data,datasize); int bwrote=
send
to(sockRaw,icmp_data,datasize,0,(struct sockaddr *)pIPAddrTemp,sizeof(dest)); int n=0; if(bwrote==SOCKET_
ERROR
) { if(WSAGetLast
Error
()==WSAETIMEDOUT) { cout<<"timed out"<
sendto failies"<
Error()<
Error()==WSAETIMEDOUT) { cout<<"timed out"<
ERROR) { if(WSAGetLast
Error
()==WSAETIMEDOUT) { cout<<"timed out"<
Error()<
GetLast
Error
错误
码大全
GetLast
Error
的返回
值
的含义: (0)-操作成功完成。 (1)-功能
错误
。 (2)- 系统找不到指定的文件。 (3)-系统找不到指定的路径。 (4)-系统无法打开文件。 (5)-拒绝访问。 (6)-句柄无 效。 (7)-存储控制块被损坏。 (8)-存储空间不足,无法处理此命令。 (9)-存储控制块地址无效。 (10)-环境错 误。 (11)-试图加载格式
错误
的程序。 (12)-访问码无效...
linux udp发送
错误
,
send
to()“无效参数”
错误
在Linux上的原始udp套接字
我试图用原始套接字发送udp数据包。对于IPv4,一切正常,但我无法突破IPv6套接字的问题,其中
send
to()始终表示无效参数。最初我在考虑IPv6的强制校验和,但IPV6_CHECKSUM选项应该解决这个问题,所以我现在没有选择。
send
to()“无效参数”
错误
在Linux上的原始udp套接字我使用inaddr_any作为addr_from,并且使用addr_to的一些ipv6地址与同一个端...
中文解释“GetLast
Error
()返回
值
”---
错误
码大全
Windows API “GetLast
Error
()返回
值
”---
错误
码大全
GetLast
Error
错误
码大全(转载)
https://www.cnblogs.com/lit10050528/p/3683018.html 转载自:GetLast
Error
GetLast
Error
GetLast
Error
返回的
值
通过在api函数中调用SetLast
Error
或SetLast
Error
Ex设置。函数 并无必要设置上一次
错误
信息,所以即使一次GetLast
Error
调用返回的是零
值
,也不能 担保函数已成功执行。只有在函数调用返回一个
错误
结果时,这个函数指出的
错误
结果 才是有效的。通常,只...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章