中易网

socketerror10053,10054究竟是怎么引起的

答案:2  悬赏:20  
解决时间 2021-01-21 21:18
socketerror10053,10054究竟是怎么引起的
最佳答案
1、可能软件的其它地方关闭了socket; 2、可能对端已关闭了连接。 3、socket被其他线程关闭你会收到10053,可能你内存访问越界。 4、检查下你的逻辑错误,别访问非法内存,写网络程序指针多做判断释放要安全释放. 5、还有一个问题,创建无法连接...
全部回答
word versionrequested; wsadata wsadata; versionrequested = makeword(2, 2); if (wsastartup(versionrequested, &wsadata)) return -1; socket socketserver = socket(af_inet, sock_stream, ipproto_tcp); sockaddr_in addrserver; addrserver.sin_addr.s_un.s_addr = inet_addr("127.0.0.1"); addrserver.sin_port = htons(9999); addrserver.sin_family = af_inet; // 连接服务器 if (0 != connect(socketserver, (sockaddr *)&addrserver, sizeof(sockaddr))) { closesocket(socketserver); return false; } int err = 0; char temp[] = "hello, server"; int rs = send(socketserver, temp, sizeof(temp) + 1, 0); char buff[1024] = {0}; rs = recv(socketserver, buff, sizeof(buff), 0); // 下面这2句代码如果注释掉,后面的recv就能正解的返回0。如果不注释掉,recv就会返回-1, // 并得到10053这个错误 rs = send(socketserver, temp, sizeof(temp) + 1, 0); err = wsagetlasterror(); rs = recv(socketserver, buff, sizeof(buff), 0); err = wsagetlasterror(); system("pause"); return 0; 这个是服务器的: [cpp] view plaincopy word versionrequested; wsadata wsadata; versionrequested = makeword(2, 2); if (wsastartup(versionrequested, &wsadata)) { printf("加载socket库失败!\n"); return -1; } // 监听来自浏览器的请求 socket sockserver = socket(af_inet, sock_stream, ipproto_tcp); sockaddr_in addrclient; addrclient.sin_family = af_inet; addrclient.sin_addr.s_addr = inaddr_any; addrclient.sin_port = htons(9999); if (sockserver == invalid_socket) { printf("socket初始化失败!\n"); closesocket(sockserver); wsacleanup(); return -1; } if (bind(sockserver, (sockaddr*)&addrclient, sizeof(addrclient)) != 0) { printf("socket绑定失败!\n"); closesocket(sockserver); wsacleanup(); return -1; } if (listen(sockserver, 10) != 0) { printf("socket监听失败!\n"); closesocket(sockserver); wsacleanup(); return -1; } while (1) { socket newsocket = accept(sockserver, null, null); if (invalid_socket == newsocket) { closesocket(newsocket); continue; } else { struct linger so_linger; so_linger.l_onoff = 1; so_linger.l_linger = 30; setsockopt(newsocket ,sol_socket, so_linger, (const char*)&so_linger, sizeof(so_linger)); } char buff[1024]; int rs = recv(newsocket, buff, sizeof(buff), 0); char temp[] = "hello, client"; rs = send(newsocket, temp, sizeof(temp) + 1, 0); closesocket(newsocket); }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
每天用茶水漱口真能对牙齿和牙龈有好处么
华为手机如何设置“仅在wifi时下载软件”?
天丽小屋地址在哪,我要去那里办事
做室内设计用什么笔记本好
郭卫国老师,电容器无功补偿柜上的电流表是什
苏州公交车早上几点!
请问向国家交20%的税收的行业有哪些
熟悉的说说没有房产证的房子如何公证?
从上海到南浔的交通?
据说老宅子门槛很高是为了防鬼?
墙漆什么牌子好?谁提供下?
问问toto洗衣机水龙头怎么样?谁能说说看?
樱花吊顶价格贵不贵有人知道的吗?谁提供下?
佛山不锈钢腐蚀牌哪家公司的好?推荐下呗!
怎么用卷发棒有谁了解,怎么用呢?
推荐资讯
细思极恐,假如大姨妈变真人会怎样
防盗门机械锁好还是自动锁好谁可以说说?谁能
大连纱窗厂家有哪些?有网友晓得吗?
迪美颜地址有知道的么?有点事想过去
房产税交纳方法是怎样的?
ppr水管卖多少钱一根?麻烦说说?
内墙瓷砖厚度标准是多少?
侬侬国际婚纱摄影(文水县节约用水办公室西南)
什么是3g域名
风水,客厅摆放鱼缸,以及养鱼数目有何讲究
光大基金在网上怎么不让查询呢
酒店厨房用冰箱功率有多大?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?