2021-01-07

VS2015 使用SOCKET遇到的问题

**
最近需要用VS2015写一个UDP服务器,很简单的小例子,写完运行报错,socket和bind函数都没成功。。。

1.socket创建失败

socket返回值一直是INVALID_SOCKET,我的是因为socket没有初始化的问题

	WSADATA wsaData;

	WORD sockVer = MAKEWORD(2, 2);
	WSAStartup(sockVer, &wsaData);

在socket之前初始化,之后socket就创建成功了。

2.bind失败

bind的失败,原本是想用返回值去看看是怎么回事,但是接返回值的时候一直报错说类型不匹配,然后又仔细瞧了瞧写的函数,确定没错,然后进入bind函数
在这里插入图片描述
是个这么个玩意,我一看这不对啊,然后去网上找原因,原来Windows里有一个std::bind函数和socket的函数冲突了,std::bind用于绑定函数,并且可以动态的传递参数。如果使用了using namespace std;就会默认调用的是std::bind函数。。。只要去掉using namespace std就行了,或者使用作用域也行。
****注:**如果有打不开源文件的时候,看看源文件是否适用Windows环境,Windows环境和Linux环境有差异。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值