bind函数(c++11里面的bind函数是什么鬼,看不懂,请高手指教)
一、bind是什么格式
bind是一种用于将函数和对象进行绑定的操作。在编程中,函数与对象之间存在一种关系,通过bind操作,可以将一个函数绑定到一个对象上,使得该函数在调用时以该对象为其上下文。
绑定后的函数可以直接访问该对象的属性和方法,并且在执行时,this关键字指向该对象。bind操作不会立即调用函数,而是返回一个新的函数,以后再进行调用。
这种方式在实际应用中可以用来改变函数的作用域、固定函数的参数、创建偏函数等,提供了更灵活和多样化的编程方式。
二、winsock bind函数内容
bind函数只能用于还没有连接的socket,即只能在connect或者listen之前调用
一个socket只能调用一次bind
所以socket一旦bind就不能在改变了.
bind函数可以用于TCP和UDP
一个socket的名字由地址族,主机地址,标识应用程序的端口号组成
socket函数指定一个地址族,bind函数则指定地址跟端口号
传入的sockaddr中的sin_addr用于指定bind的地址,选择ADDR_ANY让socketbind到任何本机地址
这适合于多个网卡,或者多个ip地址的主机
传入的sockaddr中的port指定bind的端口,如果port为零,则系统会随机赋予1024到5000的端口号.
不推荐客户端使用具体的端口号进行bind,因为可能会跟其它应用程序冲突
对于具体的socket,当bind执行成功后还可以通过getsockname得到与socket相关联的地址
但是如果bind时使用的地址是ADDR_ANY,则只能在socket接收到连接时,才能获得该地址
三、c++11里面的bind函数是什么鬼,看不懂,请高手指教
那是套接字socket用于绑定IP和端口用的