socket编程之bind()函数
来源:互联网 发布:35岁程序员职业规划 编辑:程序博客网 时间:2024/06/01 19:15
socket编程之bind()函数
目录(?)[+]
名称
bind()
把名字和套接字相关联
使用格式
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr *addr,socklen_t *addrlen);功能描述
当用socket()函数创建套接字以后,套接字在名称空间(网络地址族)中存在,但没有任何地址给它赋值。bind()把用addr指定的地址赋值给用文件描述符代表的套接字sockfd。addrlen指定了以addr所指向的地址结构体的字节长度。一般来说,该操作称为“给套接字命名”。
通常,在一个SOCK_STREAM套接字接收连接之前,必须通过bind()函数用本地地址为套接字命名。
备注:
调用bind()函数之后,为socket()函数创建的套接字关联一个相应地址,发送到这个地址的数据可以通过该套接字读取与使用。
备注:
bind()函数并不是总是需要调用的,只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。如果用户进程没有这个需要,那么程序可以依赖内核的自动的选址机制来完成自动地址选择,而不需要调用bind()函数,同时也避免不必要的复杂度。在一般情况下,对于服务器进程问题需要调用bind()函数,对于客户进程则不需要调用bind()函数。
套接字的命名规则在不同的网络协议族中有所不同。对于AF_INET参看ip(),对于AF_INET6参看ipv6(),对于AF_INET6参看unix(),对于AF_APPLETALK参看ddp(),对于AF_APPLETALK参看packet(),对于AF_X25参看x25(),对于AF_NETLINK参看netlink()。
传送给参数addr的实际结构依赖于网络协议族。sockaddr结构定义为如下格式:
该结构的唯一目的是强制结构指针在addr参数中传送,以避免编译过程出现warning。参看如下实例。
返回值
成功,返回0;出错,返回-1,相应地设定全局变量errno。
错误
EACCESS
地址空间受保护,用户不具有超级用户的权限。
EADDRINUSE
给定的地址正被使用。
实例:
下面的实例演示了如何在UNIX域中绑定流套接字,并接收连接。
原文地址:http://linux.die.net/man/2/bind
- socket编程之bind()函数
- socket编程之bind()函数
- socket编程之bind()函数
- 网络编程socket之bind函数
- 网络编程socket之bind函数
- 网络编程socket之bind函数
- 网络编程 socket 之 bind 函数
- 网络编程socket之bind函数
- 网络编程socket之bind函数
- socket编程 -- socket、bind、accept、connect函数
- Linux网络编程socket bind() 函数
- Linux socket编程之bind小技巧
- socket编程之bind绑定失败
- 网络socket编程指南 3 socket bind connect 函数
- Beej网络socket编程指南 3 socket bind connect 函数
- socket编程之bind函数可能遇到的错误及解决办法
- C/C++ socket编程教程之五:使用bind()和connect()函数
- socket bind函数
- 使用豆瓣音乐API笔记
- Java多线程学习笔记(一)——Java的非线程安全问题
- javanio中FileChannel写入文件write,追加文件,以及多文件合并
- 【Java】Java虚拟机
- PRISM 下载安装
- socket编程之bind()函数
- 通过JS判断打开PC或H5页面
- java提高篇(六)-----关键字static
- android模拟器配置之genymotion
- 安卓学习历程-第二天
- 表单提交示例(Jsp+Servlet+jQueryForm)
- F1V3.0-15 前端开发环境搭建
- 深入Celery之使用队列以及优先级提高响应
- SQL基础语句汇总