socket中bind函数绑定的IP是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket中bind函数绑定的IP是啥相关的知识,希望对你有一定的参考价值。
参考技术A 所谓bind,就是指绑定本地接受端口。指定ip,是为了分辨多ip主机。
bind是服务端调用的函数,绑定的是服务端的IP,假设服务端有多个网卡,即会有多个IP,这个时候我们可以选择用bind绑定其中一个IP,那么服务端只接收该IP上某端口的数据。
如果bind绑定的是INADDR_ANY,即表示所有发送到服务器的这个端口,不管是哪个网卡/哪个IP地址接收到的数据,都由这个服务端进程进行处理。 参考技术B bind是服务端调用的函数,绑定的是服务端的IP,假设服务端有多个网卡,即会有多个IP,这个时候我们可以选择用bind绑定其中一个IP,那么服务端只接收该IP上某端口的数据。
如果bind绑定的是INADDR_ANY,即表示所有发送到服务器的这个端口,不管是哪个网卡/哪个IP地址接收到的数据,都由这个服务端进程进行处理。 参考技术C 无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用的端口来使用。
有连接的socket客户端通过调用connect函数在socket数据结构中保存本地和远端信息,无须调用bind(),因为这种情况下只需知道目的机器的ip地址,而客户通过哪个端口与服务器建立连接并不需要关心,socket执行体为你的程序自动选择一个未被占用的端口,并通知你的程序数据什么时候打开端口。(当然也有特殊情况,linux系统中rlogin命令应当调用bind函数绑定一个未用的保留端口号,还有当客户端需要用指定的网络设备接口和端口号进行通信等等)总之:
1.需要在建连前就知道端口的话,需要
bind
2.需要通过指定的端口来通讯的话,需要
bind
websocket 函数
-
函数名 描述
-
socket_accept() 接受一个Socket连接
-
socket_bind() 把socket绑定在一个IP地址和端口上
-
socket_clear_error() 清除socket的错误或最后的错误代码
-
socket_close() 关闭一个socket资源
-
socket_connect() 开始一个socket连接
-
socket_create_listen() 在指定端口打开一个socket监听
-
socket_create_pair() 产生一对没有差别的socket到一个数组里
-
socket_create() 产生一个socket,相当于产生一个socket的数据结构
-
socket_get_option() 获取socket选项
-
socket_getpeername() 获取远程类似主机的ip地址
-
socket_getsockname() 获取本地socket的ip地址
-
socket_iovec_add() 添加一个新的向量到一个分散/聚合的数组
-
socket_iovec_alloc() 这个函数创建一个能够发送接收读写的iovec数据结构
-
socket_iovec_delete() 删除一个已分配的iovec
-
socket_iovec_fetch() 返回指定的iovec资源的数据
-
socket_iovec_free() 释放一个iovec资源
-
socket_iovec_set() 设置iovec的数据新值
-
socket_last_error() 获取当前socket的最后错误代码
-
socket_listen() 监听由指定socket的所有连接
-
socket_read() 读取指定长度的数据
-
socket_readv() 读取从分散/聚合数组过来的数据
-
socket_recv() 从socket里结束数据到缓存
-
socket_recvfrom() 接受数据从指定的socket,如果没有指定则默认当前socket
-
socket_recvmsg() 从iovec里接受消息
-
socket_select() 多路选择
-
socket_send() 这个函数发送数据到已连接的socket
-
socket_sendmsg() 发送消息到socket
-
socket_sendto() 发送消息到指定地址的socket
-
socket_set_block() 在socket里设置为块模式
-
socket_set_nonblock() socket里设置为非块模式
-
socket_set_option() 设置socket选项
-
socket_shutdown() 这个函数允许你关闭读、写、或指定的socket
-
socket_strerror() 返回指定错误号的周详错误
-
socket_write() 写数据到socket缓存
-
socket_writev() 写数据到分散/聚合数组
以上是关于socket中bind函数绑定的IP是啥的主要内容,如果未能解决你的问题,请参考以下文章
socket的bind函数是否只能绑定本地IP,不能绑定外网IP么
socket编程中为啥client端的可以不用bind函数绑定.而客户端必须呢?