关于socket通信bind()返回值错误:10049

关于socket通信bind()返回值错误:10049前几天偶尔收到一个朋友的求救,要编写一个IPV6的socket编程开始以为这个问题很容易,因为socket已经兼容IPV4和IPV6的,改下那几个接口就可以了然后….被卡住了….修改了参

大家好,又见面了,我是你们的朋友全栈君。

前几天偶尔收到一个朋友的求救,要编写一个IPV6的socket编程

开始以为这个问题很容易,因为socket已经兼容IPV4和IPV6的,改下那几个接口就可以了

然后….被卡住了….

修改了参数为IPV6的参数以后,在bind的时候始终包10049错误.

按照MSDN的说法,10049的意思表示找不到那个IP.

但是我服务器端bind监听的socket的时候,是不应该出这个问题的…

遍历无果,只能通过检视代码来找可能的错误.

        CString strError;
	m_hSocket;
	sockaddr_in6 addr;

	addr.sin6_family=AF_INET6;//表示在INT上通信
	addr.sin6_addr =in6addr_any;

	//inet_pton(AF_INET6,DEFAULT_IP,&addr.sin6_addr);

	addr.sin6_port=htons(8000); 

	int ret=0;
	int error=0;
	ret=bind(m_hSocket,(struct sockaddr *)&addr,sizeof(struct sockaddr_in6));//绑定
	if(ret==SOCKET_ERROR)
	{
		strError.Format("绑定失败:%d ",error=WSAGetLastError());
		pDlg->MessageBox(strError,"错误",MB_ICONSTOP);
		closesocket(m_hSocket);
		return;
	}        

  

检视的过程中发现,排除socket的配置错误,唯一一个可能的地方

定义sockaddr_in6 结构体的时候没有初始化…

因此加了一句 memset(&addr, 0, sizeof(addr));

重新试了下,bind成功…

 

这个事情告诉我们,一定要遵守编程规范….

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155520.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于Docker的Kafka集群搭建

    基于Docker的Kafka集群搭建1.pulldocker,在机器上下载最新版本的kafka和zookeeper镜像,这里使用的是wurstmeister的镜像dockerpullwurstmeister/kafkadockerpullwurstmeister/zookeeper2.装好的docker镜像3.启动zk容器Dockerrun–d–namezookeeper–p2181:…

    2022年6月9日
    50
  • PyCharm 2021.5.3 x64激活码永久【在线注册码/序列号/破解码】

    PyCharm 2021.5.3 x64激活码永久【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    69
  • 关于大学计算机相关专业学习路线的见解与分析

    关于大学计算机相关专业学习路线的见解与分析谨以此文献给仍然迷失在大学生活中的计算机专业学子!!!不管你是如何选择了这门专业,我想告诉你的是这是一个很深的领域,没有热爱不如尽早转行。根据百度百科计算机科学与技术专业(以下简称计算机专业)给出的描述,该专业的主干课程有算法、数据结构、操作系统、编译原理、计算机组成原理、计算机体系结构、计算机网络(划重点,这些都是专业基础课,其中的任意一门拿出来都够研究一生的,虽然大学的教育基本上都是讲…

    2022年5月3日
    47
  • 【转载】C# 理解泛型

    【转载】C# 理解泛型

    2021年11月20日
    43
  • api接口调用

    api接口调用api接口调用CURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持CURL库。使用PHP的CURL库可以简单和有效

    2022年7月3日
    18
  • c语言system函数用法pause_c语言函数system调用

    c语言system函数用法pause_c语言函数system调用system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。       system函数是可以调用一些DOS命令,比如system(“cls”);//清屏,等于在DOS上

    2022年9月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号