首页 > 其他分享 >网络错误码 10013 错误问题分析

网络错误码 10013 错误问题分析

时间:2023-09-07 19:00:59浏览次数:44  
标签:错误 int 错误码 WSAStartup sockVersion 10013 CLOSE include WAIT

前言

10013

以一种访问权限不允许的方式做了一个访问套接字的尝试。 


原因

绑定一个处于CLOSE_WAIT状态的端口,会产生该错误


重现

先找到一个处于CLOSE_WAIT状态的端口49724

C:\Users\admin>netstat -ano |findstr CLOSE_WAIT
  TCP    192.168.11.149:49724   123.60.175.170:80      CLOSE_WAIT      5904

代码测试

#include <iostream>

#include <winsock2.h>  
#include <stdio.h>  
#pragma comment(lib,"ws2_32.lib")  

int main()
{
	//初始化WSA
	WORD sockVersion = MAKEWORD(2, 2);
	WSADATA wsaData;//WSADATA结构体变量的地址值

	//int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
	//成功时会返回0,失败时返回非零的错误代码值
	if (WSAStartup(sockVersion, &wsaData) != 0)
	{
		std::cout << "初始化网络库失败,错误码:" << WSAGetLastError() << std::endl;
		return -1;
	}

	//创建套接字
	SOCKET socketListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (socketListen == INVALID_SOCKET)
	{
		std::cout << "创建套接字失败,错误码:" << WSAGetLastError() << std::endl;
		return -1;
	}

	//绑定IP和端口
	sockaddr_in sin;//ipv4的指定方法是使用struct sockaddr_in类型的变量
	sin.sin_family = AF_INET;
	sin.sin_port = htons(49725);//设置端口。htons将主机的unsigned short int转换为网络字节顺序
	sin.sin_addr.S_un.S_addr = inet_addr("192.168.11.149");//IP地址设置成INADDR_ANY,让系统自动获取本机的IP地址
	//bind函数把一个地址族中的特定地址赋给scket。
	if (::bind(socketListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
	{
		std::cout << "绑定套接字失败,错误码:" << WSAGetLastError() << std::endl;
	}
	else
	{
		std::cout << "绑定套接字成功" << std::endl;
	}
	return 0;
}

标签:错误,int,错误码,WSAStartup,sockVersion,10013,CLOSE,include,WAIT
From: https://blog.51cto.com/fengyuzaitu/7400500

相关文章

  • promise.all和promise.race途中出现错误运行情况
    1.promise.alla.在使用时,如果中间不出错返回reject,会在.then()后返回每一个promise的resolve()返回的内容。functionp1(){returnnewPromise((resolve,reject)=>{console.log('成功1')resolve('成功1')})}functionp2(){returnnewP......
  • 【错误记录】exe4j 打包程序无法设置 jar 包依赖的问题 ( 将源码 和 依赖库打包到同一
    文章目录一、问题描述二、解决方案一、问题描述在【错误记录】IntelliJIDEA导出可执行jar包执行报错(java.lang.ClassNotFoundException|打包时没有选择依赖库)博客中遇到java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDrivera......
  • 【错误记录】Android Studio 创建 Module 模块报错 ( Cannot resolve external depend
    文章目录一、报错信息二、解决方案目前使用的是最新的Gradle配置,创建Module生成的源码与Gradle配置出现了冲突,导致的问题;解决此类问题,要仔细检查Gradle构建脚本,排查每个依赖库的来源;本次错误就是AS系统自动成的Module修改了Gradle构建脚本,导......
  • 使用JS,IE提示:由于出现错误 80020101 而导致此项操作
    消息:由于出现错误80020101而导致此项操作无法完成。行:7字符:36748代码:0URI:http://localhost:3760/Ext_Demo/ext/ext-all.js问题原因:这个错误通常是在执行某些语句时,相应的引用文件还没有加载到浏览器,导致无法执行。可以检查一下加载顺序的问题(引用或者iframe)和执行权限......
  • 记录一次 QSqlite driver not loaded 错误
    在调试软件的时候,发现查询sqlite数据出了问题,查询不到数据。通过QSqlQuery::latsError获取错误消息,结果错误原因是drivernotloaded,但是代码中使用QSqlDatabase::drivers()确认了一下是存在QSQLITE的,而且程序运行的时候,也输出了可用drivers里面是包括QSQLITE的。测试代码#i......
  • vscode 代码没有错误提示
    之前为了解决vue装饰器写法报错,在.eslintrc.js文件加入legacyDecorators:true就可以支持装饰器的写法了。parserOptions:{//解析器parser:'babel-eslint',ecmaFeatures:{//支持装饰器legacyDecorators:true}}, 但是后来发现vsco......
  • Every derived table must have its own alias(sql语句错误解决方法)
    1、执行下面语句时,报错Everyderivedtablemusthaveitsownaliasselect*from(select*fromjt_noteswherecreateUser='b548323007b647809bb8e4192cf44195'limit0,10)2、解决方案,加一个别名就可以了select*from(select*fromjt_noteswherecreateUs......
  • 如何禁用 PHP 报告 SQL 错误?
    要禁用PHP报告SQL错误,可以使用以下两种方法之一:基于运行时设置:使用运行时设置通过更改PHP的错误报告级别来禁用SQL错误报告。可以在PHP脚本的开头或需要禁用SQL报告的地方添加以下代码:error_reporting(error_reporting()&~E_DEPRECATED&~E_NOTICE&~E_STRICT&~E_WARNING&~......
  • Androd 7.0编译错误合集
    1 error:ro.build.fingerprintcannotexceed91bytesbuild/tools/post_process_props.py.Changelinesasfollows:PROP_NAME_MAX=31#PROP_VALUE_MAX=91PROP_VALUE_MAX=128PROP_NAME_MAX=31#PROP_VALUE_MAX=91PROP_VALUE_MAX=128bionic/libc/include......
  • 错误处理
    错误处理 axios.get('/user/12345').catch(function(error){if(error.response){//请求成功发出且服务器也响应了状态码,但状态代码超出了2xx的范围console.log(error.response.data);console.log(error.response.status);console.l......