socket编程:bind函数是把socket绑定到具体窗口?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket编程:bind函数是把socket绑定到具体窗口?相关的知识,希望对你有一定的参考价值。
在服务端模式下,bind是将SOCKET与指定的IP地址和端口进行绑定这样,SOCKET就会只接收指定IP地址和指定端口处的数据.
而在客户端模式,bind是绑定端口,使数据通过指定端口发送出去. 参考技术A 只有在服务器端调用bind,绑定到某个ip地址上,
绑定的ip地址也就是你接受连接哦ip地址,
你还可以把bind的参数改变 让它能接受所有ip地址的
客户端发过来的connect的请求。
其实就是相当电话,你绑定的作用就是你容许某个电话号码
打给你,如果未绑定的号码打给你就不收到!!!!
socket编程bind()函数
#include <sys/socket.h> int bind(int socket, const struct sockaddr *address, socklen_t address_len);
bind()函数功能
将address指向的sockaddr结构体中描述的一些属性(IP地址、端口号、地址簇)与socket套接字绑定,也叫给套接字命名。
调用bind()后,就为socket套接字关联了一个相应的地址与端口号,即发送到地址值该端口的数据可通过socket读取和使用。当然也可通过该socket发送数据到指定目的。
对于Server,bind()是必须要做的事情,服务器启动时需要绑定指定的端口来提供服务(以便于客户向指定的端口发送请求),对于服务器socket绑定地址,一般而言将IP地址赋值为INADDR_ANY(该宏值为0),即无论发送到系统中的哪个IP地址(当服务器有多张网卡时会有多个IP地址)的请求都采用该socket来处理,而无需指定固定IP。
对于Client,一般而言无需主动调用bind(),一切由操作系统来完成。在发送数据前,操作系统会为套接字随机分配一个可用的端口,同时将该套接字和本地地址信息绑定。
关于套接字更详细的使用,可参考:
一个草率的采用UDP协议的CS模型Demo:GitHub传送
以上是关于socket编程:bind函数是把socket绑定到具体窗口?的主要内容,如果未能解决你的问题,请参考以下文章