精华内容
下载资源
问答
  • 解决方法如下,建议在实际开发中尽量不要使用using namespace std;...对于C库中的函数和c++库中的函数重名问题,都可以使用该方法进行解决。 推荐一篇博文,将的是C/C++中的标准库有什么的问题 https:/...

    解决方法如下,建议在实际开发中尽量不要使用using namespace std;而是尽量的缩小域的范围,比如使用:std::cout,std::cin等。解决该问题的方法,可以使用全局域进行解决,比如想使用c中的库函数,就可以直接使用::bind进行掉调用。对于C库中的函数和c++库中的函数重名问题,都可以使用该方法进行解决。

    推荐一篇博文,将的是C/C++中的标准库有什么的问题
    https://www.cnblogs.com/ht-927/p/4726556.html
    https://blog.csdn.net/u010317005/article/details/51155496

    展开全文
  • 最近学习了C/C++下的关于UDP部分的内容,在实际编写代码中遇到了Socket中的bind函数(用于绑定本地端口)冲突问题。而且很奇怪的是这一部分代码在CLion下并没有出现问题,在编写了JNI之后放在Android Studio下编译时...

           最近学习了C/C++下的关于UDP部分的内容,在实际编写代码中遇到了Socket中的bind函数(用于绑定本地端口)冲突问题。而且很奇怪的是这一部分代码在CLion下并没有出现问题,在编写了JNI之后放在Android Studio下编译时发生了冲突,出现了错误提示:bind函数类型不匹配,原因很简单,在头文件<functional>里面有bind函数,而<sys/socket>下也有自己的bind,这就导致了冲突。

    具体代码段如下:

    if(bind(sockfd, (struct sockaddr *)&server, sizeof(server)) == -1) {
            perror("Bind socket error ");
            close(sockfd);
            exit(1);
        }

    本人在网上也试了几种不同的解决方法,列举如下,但不知为何都没有解决问题

    方法原文链接:https://blog.csdn.net/u010317005/article/details/51155496

    1. 不使用using namespace std,在需要用socket的bind时用bind(),其他则使用std::bind();
    2. 直接在bind前加::,即使用::bind();可返回socket下的地址空间。                                        

    在尝试无果后,抱着曲线救国的试试态度,我在项目工程下的其他头文件中封装了一个bindport函数如下:

    static int bindport(int sockfd; struct sockaddr* sock; socklen_t sock_len){
            int ret = bind(sockfd,sock,sock_len);
            return ret;
    }

    在需要用到bind()函数的使用引用bindport函数,至此,问题解决。

    展开全文
  • Socket的bind函数冲突问题

    千次阅读 2014-03-19 15:52:08
    由于socket重发等待,所以打算加入多线程,可是在InitTcpServer的绑定时候,出现了错误:if (bind(nSocket,(sockaddr *)&sa,sizeof(sa)) ) //绑定 { closesocket(nSocket); return -1; }提示:bind类型不...

    由于socket重发等待,所以打算加入多线程,可是在InitTcpServer的绑定时候,出现了错误提示:bind类型不匹配,可是我的改动仅仅是加了一个头文件:

    #include <boost/thread/thread.hpp>

    程序如下:

    if (bind(nSocket,(sockaddr *)&sa,sizeof(sa)) < 0) //绑定  
    	{  
    		closesocket(nSocket);         
    		return -1;  
    	}

    问题分析:

    众所周知,boost也有bind,在bind_cc.hpp里面,而boost中用到了STL,而STL也有一个bind,在<functional>里面,而socket也有自己的bind。这就导致了冲突。

    解决方法:

    第一步:把boost的bind用boost::bind后,减少了一些错误,有用!可是socket的bind依然是类型不匹配。

    第二步:

    这是关键步骤,先问题分析:

    1)加了boost::bind,指定了该bind的调用类型,这主要归功于命名空间。解决了socket与boost,STL三者冲突中的与boost冲突。

    2)但是socket本身的bind没有命名空间,STL因为#include <boost/thread/thread.hpp>而被包含,因为using namespace std而不需要使用std::bind,因此依然冲突,socket与STL之间的冲突。

    因此:

    将#include <boost/thread/thread.hpp>放到调用socket的bind的函数之后,则在包含该文件之前,只能使用socket的bind,应该无冲突,果然如此!

    至此,冲突解决。

    最终如下:


    展开全文
  • 编译时候报如下错误: error C2678: 二进制“==”: 没有找到接受“std::_Bind&lt;false,void,SOCKET &amp;,sockaddr *,unsigned int&gt;”类型的左操作数的运算符(或没有可接受的转换解决办法:一、...
    编译时候报如下错误:
    


     error C2678: 二进制“==”: 没有找到接受“std::_Bind<false,void,SOCKET &,sockaddr *,unsigned int>”类型的左操作数的运算符(或没有可接受的转换


    解决办法:


    一、如果想用std的bind,就在bind前加std::,例如:int result = std::bind(listen_fd, (struct sockaddr *)&server, sizeof(struct sockaddr));


    二、如果想用winsocket2.h中的bind


    1.在使用bind()的类别中,不适用std的命名空间。避免冲突,这时可直接使用函数bind().

    2.使用运算符::,在使用bind()函数时,添加运算符::,通过::bind()来进行函数调用。

    展开全文
  • TCP Socket bind函数失效

    2020-03-08 19:24:30
    调用WinSock2.h中的bind函数时与std中的bind函数冲突了。 解决办法: 使用::bind可以明确表示引用的是WinSock2中的bind函数,从而避免bug。
  • VS2015 std::bind 和Socket中的bind函数冲突的解决方案
  • 在VS2015中进行网络编程时,有时候发现编写bind()函数时发现并非是我们想要的socket中bind()函数,而是一个乱七八糟的模板bind。 经查阅,在VS2015中新增了bind的模板,如std::bind(_Fp &&__f, _BoundArgs ...
  • 使用Socket类时遇到函数冲突的问题,情况是这样的,Socket中有一个bind函数, 原型如下 :  if (bind(server_fd,(struct sockaddr*)&server_addr, sizeof(struct sockaddr)) == -1){  printf("FILE:%s, line:%...
  • 今日偶然发现的,当包含#include<...if (bind(serverSocket, (sockaddr*)&serveraddr, sizeof(serveraddr)) == SOCKET_ERROR) { …… } vs编译时会报错,提示 == 类型不对 哪位高人可以解释一下;
  • bind函数 1)头文件: #include <sys/types.h> #include <sys/socket.h> 2)函数定义形式 int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 函数功能及返回值 1)将指定了通信...
  • 问题如下现象: VS2015编译错误:  errorCxxxx: ‘initializing...原因:c++ 11 ,在命名空间std中实现了bind函数,与socket编程里的bind函数冲突。 在网上找了几天给出的解决方案都是类似的: 解决方法: 去掉本文件
  • Boost库bind函数的嵌套调用

    千次阅读 2013-04-22 00:13:31
    问题提出: 我写了一个函数,它需要使用一个生成整数随机数的随机数发生器作为参数。然后写了一个函数来根据参数生成不同分布的随机数发生器,供前一个...很明显那些生成double的函数不能直接通过bind operator()的方
  • winsock2 bind函数的功能

    千次阅读 2011-09-22 11:00:35
    01.int bind( 02.__in SOCKET s, 03.__in const struct sockaddr* name, 04.__in int namelen 05.); bind函数
  • bind 函数主要是服务器端使用,把一个本地协议地址赋予套接字。 1、应用层——bind 函数 #include int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen); /*sockfd是由socket函数返回的套接口...
  • socket 函数并没有为套接字绑定本地地址和端口号,对于服务器端则必须显性绑定...bind 函数主要是服务器端使用,把一个本地协议地址赋予套接字。 1、应用层——bind 函数 [cpp] view plain copy
  • 为什么TCP服务端需要调用bind函数而客户端通常不需要呢
  • 查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!...我用调了boost库的一些基于特定概率分布的随机数生成函数,但是有很多函数的结果是double型的。 ...
  • javascript中手写call,apply,bind函数callapplybind call Function.prototype.myCall = function (context, ...args) { // if(typeof this !== 'function'){ //不需要判断类型,因为myCall定义在Function.prototype...
  • c++中std namespace和socket的bind冲突

    千次阅读 2016-06-13 02:00:26
    今天写代码的时候碰到一...在标准库中的std::bind和socket中的bind函数完全不一样,所以导致后面一直监听失败。 解决办法就是使用::bind,这样命名空间就回到了socket中的那个bind,或者直接不用using namespace std;
  • 可以考虑给function函数原型增加一个bind方法------它只是封装了apply函数,返回值是一个function: var first_object = { num: 42 }; function multiply(mult) { return this.num * mult; } Function....
  • 最近在看《深入了解JavaScript》这本书,在看到了关于Function构造函数和bind函数后,让我突然有股冲动想自己来实现一下bind函数,于是乎,我就开始尝试编写bind函数。  尝试编写的第一个版本,写的实在是太累赘了...
  • 编写socket网络通信程序的时候,在服务端用到bind函数进行绑定,写了如下语句 if (SOCKET_ERROR == bind(m_listen, (struct sockaddr*)&sin, sizeof(sin))){ cout << "绑定失败!" << endl; close...
  • 目录 一、函数使用 1.1 函数声明和函数表达式 1.2 函数封装(自调用函数... 2.1 改变函数作用域(call/apply/bind) 2.2 for循环中的setTimeout问题修复 一、函数使用 字符串和数组都是用来存储数据。需要
  • C++ socket bind() 函数绑定错误

    千次阅读 2016-11-25 20:36:47
    C++ bind() 函数绑定错误 VS2013编译错误: Error 48 errorC2440: 'initializing' : cannot convert from 'std::_Bind' to 'int' 现象:Socket编程中...,在命名空间std中实现了bind函数,与socket编程里的bind
  • 那一年, 某哥让我写个tcp服务端客户端程序, 我草草写完, 然后他检查...bind函数就是绑定, 将一个socket绑定到一个地址上, 也可以这么说:bind函数对一个socket进行命名(注意:socket名称包括三要素: 协议, ip,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,028
精华内容 8,411
关键字:

bind函数冲突