socket接收报错

2023-10-26

首先是没得到正确错误号,是因为windows平台WSAGetLastError得过之后就没了,所以需要int变量保存一下

发现错误号后知道是最后一个参数没有初始化复制

bzero(buf, sizeof(buf));

bzero(&cli_adr, sizeof(struct sockaddr_in));

cliLen=sizeof(cli_adr);

retval = recvfrom(udpsock, (char*)buf, sizeof(buf)-1, 0, (struct sockaddr *)&cli_adr, &cliLen);

附加socket错误说明

WSAENOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。

WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。

WSAEADDRINUSE:所指的地址已在使用中。

WSAEINTR:通过一个WSACancelBlockingCall()来取消一个(阻塞的)调用。

WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。

WSAEADDRNOTAVAIL:在本地机器上找不到所指的地址。

WSAENOTSUPPORT:所指族中地址无法与本套接口一起使用。

WSAECONNREFUSED:连接尝试被强制拒绝。

WSAEDESTADDREQ:需要目的地址。

WSAEFAULT:namelen参数不正确。

WSAEINVAL:套接口没有准备好与一地址捆绑。

WSAEISCONN:套接口早已连接。

WSAEMFILE:无多余文件描述字。

WSAENETUNREACH:当前无法从本主机访问网络。

WSAENOBUFS:无可用缓冲区。套接口未被连接。

WSAENOTSOCK:描述字不是一个套接口。

WSAETIMEOUT:超时时间到。

WSAEWOULDBLOCK:套接口设置为非阻塞方式且连接不能立即建立。可用select()调用对套接口写,因为select()时会进行连接 http://blog.chinaunix.net/u/11458/showart_258639.html

WSAEINVAL (10022):无效自变量。它也可以表示套接字的当前状态与要调用的 TCP 函数不兼容,或套接字可能不再有效。 WSAEMFILE (10024):打开的文件太多。打开的套接字太多。每个实现可以有一个全局、每进程或每线程可用的套接字句柄的最大数目。 WSAEWOULDBLOCK (10035):资源暂时不可用。从在非分块的套接字上不能立即完成的操作返回此错误。 WSAEINPROGRESS (10036):正在进行分块“Windows 套接字”操作。“Windows 套接字”仅允许每个任务(或线程)有单个分块操作未完成,并且如果进行任何其它函数调用,则函数由于 WSAEINPROGRESS 而失败。 WSAENOPROTOOPT (10042):错误协议选项。在 getsockopt() 或 setsockopt() 调用中指定了未知、无效或不受支持的选项或级别。 WSAEADDRINUSE (10048):地址已经在使用。通常仅允许每个套接字地址(协议/IP 地址/端口)的一种使用。如果应用程序试图将套接字 bind() 至 IP 地址/端口,而该 IP 地址/端口已经用于现有套接字、未正确关闭的套接字或仍处于关闭进程中的套接字,则发生此错误。 WSAENETDOWN (10050):网络已停止。套接字操作遇到了失效网络。这可能指示网络系统(即,WinSock DLL 溢出的协议堆栈)、网络接口或本地网络本身的严重故障。 WSAENETUNREACH (10051):网络不可到达。试图对不可到达的网络执行套接字操作。这通常表示本地软件知道没有到达远程主机的路由。 WSAENETRESET (10052):网络复位时删除了连接。由于该操作正在进行时“保持活动”活动检测到故障,已中断连接。如果试图在已经失败的连接中设置 SO_KEEPALIVE,则也可能是由 stsockopt() 返回的。 WSAECONNABORTED (10053):软件导致了连接异常终止。可能由于数据传送超时或协议错误,机器上的软件异常终止了已建立的连接, WSAECONNRESET (10054):连接由对等设备复位。远程对等设备强制关闭了现有连接。如果远程机器上的对等应用程序突然停止,机器重新引导,或对等应用程序在远程套接字中使用了“硬关闭”,则通常会导致此结果。如果由于一个或多个操作正在进行时“保持活动”活动检测到故障而中断连接,则也可能导致此错误。正在进行的操作由于 WSAENETRESET 而失败。后续操作由于 WSAECONNRESET 而失败。 WSAENOBUFS (10055):没有可用缓冲区空间。因为系统缺乏足够缓冲区空间或由于队列已满,所以可能无法执行套接字上的操作。 WSAENOTCONN (10057):未连接套接字。 WSAETIMEDOUT (10060):连接超时。因为在一段时间后连接的一方未正确响应,所以连接尝试失败。 WSAECONNREFUSED (10061):连接已被拒绝。如果正在尝试连接至实例或连接至数据库,则检查是否已成功启动服务器上的数据库管理器和 TCP/IP 协议支持。 WSAEHOSTUNREACH (10065):没有至主机的路由。试图对不可到达的机器执行套接字操作。 WSASYSNOTREADY (10091):基础网络子系统未准备好进行网络通信。用户应该检查相应的“Windows 套接字 DLL”是否位于当前路径中,并检查它们是否未尝试同时使用多个 WinSock 实现。如果在您的系统上存在多个 WinSock DLL,则确保路径中的第一个 WinSock DLL 适合于当前已装入的网络子系统,并确保当前已安装并已正确配置所有必要的组件。 WSAVERNOTSUPPORTED (10092):此特定的“Windows 套接字”实现未提供请求的“Windows 套接字 API”支持的版本。检查是否未访问旧的“Windows 套接字 DLL”文件。 WSA_E_NO_MORE (10110), WSAENOMORE (10102):没有可用数据。在“Windows 套接字”版本 2 中,为 WSAENOMORE 和 WSA_E_NO_MORE 定义了冲突的错误代码。在以后版本中将除去错误代码 WSAENOMORE,只有 WSA_E_NO_MORE 将保留。 WSAHOST_NOT_FOUND (11001):找不到主机。 WSATRY_AGAIN (11002):找不到主机。因为本地机器未接收到来自名称服务器的响应,所以请求从名称服务器中检索主机名的 IP 地址失败。 WSANO_DATA (11004):名称无效,没有请求的类型的数据记录。名称服务器或 hosts 文件不识别主机名,或者在 services 文件中未指定服务名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

socket接收报错 的相关文章

随机推荐

  • unity图集的使用(万能方法)

    图集的意义 使用图集可以说是多加了一个步骤 但是这个步骤不是没有意义的 他可以有效的减少drawcall的数量 多张图片需要多个drawcall 而如果我们合成一个大图 只需要一个drawcall 并且可以减少内存的开销 图集的使用 然后就
  • 最全的jquery datatables api 使用详解

    分别导入css和js文件 加载
  • 【语义分割】4、DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation

    文章目录 摘要 1 引言 2 相关工作 3 深层特征聚合网络 3 1 Observations 3 2 深层特征聚合 3 3 网络结构 4 实验 4 1 DFA 结构的分析 4 1 1 轻量级 backbone 网络 4 1 2 特征聚合
  • M5311模组对接OneNet平台—AT指令基本操作流程(LwM2M协议)

    目录 概述 一 开机驻网流程 二 注册onenet平台 概述 下面将介绍M5311模组对接OneNet平台 AT指令基本操作流程 LwM2M协议 已在项目中使用 一 开机驻网流程 1 AT SM LOCK 2 AT 3 AT CMEE 1
  • 经典树结构——B+树的原理及实现

    文章目录 B 树的概念 B 树实现 B 树节点参数 B 树的查询 实现 B 树插入 实现 B 树删除 实现 B 树的概念 规则 B 跟B树不同B 树的非叶子节点不保存关键字记录的指针 只进行数据索引 这样使得B 树每个非叶子节点所能保存的关
  • Linux系统基础操作命令

    目录 一 基本使用 1 编辑Linux命令行的辅助操作 2 常用的基础命令 1 切换用户 su 2 pwd 查看当前工作目录 3 cd 切换工作目录 4 cp 复制 5 mkdir 创建目录 6 touch 创建文件 7 创建链接文件ln
  • 《网络安全工程师笔记》 第十一章:WEB服务器和FTP服务器

    注 本笔记来自温晓飞老师的网络安全课程 第十一章 WEB服务器和FTP服务器 第一章 虚拟化架构与系统部署 第二章 IP地址详解 第三章 进制转换 第四章 DOS基本命令与批处理 第五章 用户与组管理 第六章 服务器远程管理 第七章 NTF
  • java基础6

    packagecom edu 01 public class Student 私有化成员变量 private String name private int age set get方法 public voidsetName String n
  • [基础数据结构] 判断是否为完全二叉搜索树

    对二叉搜索树的定义是 一棵深度为k的有n个结点的二叉树 对树中的结点按从上至下 从左到右的顺序进行编号 如果编号为i 1 i n 1 i n 1 i n 的结点与满二叉树中编号为i的结点在二叉树中的位置相同 则这棵二叉树称为
  • UI设计都有哪些设计原则,分享三个给你

    是什么使一个好UI设计容易阅读 是什么让用户轻松浏览 设计师如何创造一个闪亮的UI 任何软件产品的关键部分都是用户界面 好的UI设计 用户甚至会忽略它 如果做得不好 就会成为用户使用产品的绊脚石 为了更有效地设计能够满足用户使用的设计UI
  • 【原理篇】再次带你进入多线程的世界

    1 Java内存模型基础知识 1 1并发编程模型的两个关键问题 线程间如何通信 即 线程之间以何种机制来交换信息 线程间如何同步 即 线程以何种机制来控制不同线程间操作发 的相对顺序 有两种并发模型可以解决这两个问题 消息传递并发模型 共享
  • scala的基础语法之变量

    1 类介绍 我们在new scala类的时候 这里分为Class和Object两大类 idea2019 1版本 其他新版本应该是四种 case Class和case Object 不过没关系 这里想要使用case的直接在前面写case即可
  • 任正非谈成功秘诀:28年只对准一个城墙口冲锋

    文 记者 赵东辉 李斌 刘诗平 蔡国兆 彭勇 何雨欣 任正非和华为公司 堪称当代商业史上的传奇 1987年 年满43岁的任正非和5个同伴集资2 1万元成立华为公司 利用两台万用表加一台示波器 在深圳的一个 烂棚棚 里起家创业 28年后 华为
  • 穿越火线排位赛显示该服务器,CF新段位S7枪王排位调整 排位分数和地图

    CF新段位S7枪王排位调整 排位分数和地图 本次体验服客户端正式更新同时S7枪王排位赛页开启了 本期枪王排位针对地图 段位分数和奖励上进行调整 不同段位分数和地图加成都不同 枪王排位第五赛季开始及优化丢掉大脑再丢烦恼 冲啥大冲啥小 冲啥都有
  • 【无标题】PAT作业1001 害死人不偿命的(3n+1)猜想

    题目要求简要概述 输入一个小于1000的正整数 如果该正整数为奇数 进行2 n的运算 如果为偶数 进行 3n 1 2的运算 反复进行计算 直至n 1后 输出运算的次数 解题方法 1 定义两个整形变量 分别用于输入n 记录运算次数 int n
  • 将压缩包里的图片显示到页面上示例

    在做项目的时候有个这样的需求 需要把压缩包里的图片预览显示出来 梳理一下就以下三步 下载压缩包 解压出文件 组成可用的图片URL 显示到图片标签上 实现这个功能过程还是走了些弯路的 也遇到一些坑 这里就不多废话了 直接上代码 希望能帮助各位
  • SVPWM所需要掌握的一些定理

    1 正弦定理 2 伏秒平衡 不懂 伏秒平衡 又称伏秒平衡 是指开关电源稳定工作状态下 加在电感两端的电压乘以导通时间等于关断时刻电感两端电压乘以关断时间 或指在稳态工作的开关电源中电感两端的正伏秒值等于负伏秒值 在SVPWM中 磁链等于电压
  • ORB-SLAM2第二节---双目地图初始化

    比起单目初始化 而双目实现地图的初始化非常简单 只需要一帧 左右目图像 即可完成初始化 行特征点统计 考虑用图像金字塔尺度作为偏移量 在当前点上下正负偏移量 r 内的纵坐标值都认为是匹配点可能存在的行数 之所以这样做 是因为极线矫正后仍然存
  • 创建steam账户反复人机验证_您必须先通过人机验证才能创建steam帐户怎么办

    展开全部 在注册steam帐户遇到提示必须通过人机验证才能创建62616964757a686964616fe4b893e5b19e31333433643062提示时 勾选注册页面中的进行人机验证 在人机身份验证界面中点击需要的图片并按照步骤
  • socket接收报错

    首先是没得到正确错误号 是因为windows平台WSAGetLastError得过之后就没了 所以需要int变量保存一下 发现错误号后知道是最后一个参数没有初始化复制 bzero buf sizeof buf bzero cli adr s