bind - 将一个名字和一个套接字绑定到一起
SYNOPSIS 概述
#include <sys/types.h>
#include
<sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr,
socklen_t addrlen);
DESCRIPTION 描述
bind 为套接字 sockfd 指定本地地址 my_addr.
my_addr 的长度为 addrlen (字节).传统的叫法是给一个套接字分配一个名字. 当使用
socket(2), 函数创建一个套接字时,它存在于一个地址空间(地址族), 但还没有给它分配一个名字
一般来说在使用 SOCK_STREAM 套接字建立连接之前总要使用 bind 为其分配一个本地地址.参见
accept(2)).
NOTES 注意
这条规则用于给每个地址族绑定不同的名称.更多细节请参考手册页第7册(man7). 对于 AF_INET 参见
ip(7), 对于 AF_UNIX 参见 unix(7), 对于
AF_APPLETALK 参见 ddp(7), 对于 AF_PACKET 参见
packet(7), 对于r AF_X25 参见 x25(7) 对于
AF_NETLINK 参见 netlink(7).
RETURN VALUE 返回值
函数执行成功返回0,否则返回-1, 并设置错误代码.
ERRORS 错误
- EBADF
- sockfd 不是一个合法套接字描述符.
- EINVAL
- 套接字已经绑定到一个地址.这一条在以后会有所改变: 具体参见 linux/unix/sock.c
- EACCES
- 地址受保护,用户不是系统管理员.
- ENOTSOCK
- 参数是文件描述符,不是一个套接字.
下列错误适用于UNIX域 (AF_UNIX) 套接字.
- EINVAL
- 地址长度 addrlen 错误,或者套接字不在 AF_UNIX 族.
- EROFS
- 套接字节点位于只读文件系统.
- EFAULT
- my_addr 指向用户无权访问的地址空间.
- ENAMETOOLONG
- my_addr 长度超范围.
- ENOENT
- 文件不存在.
- ENOMEM
- 内核存储空间不足.
- ENOTDIR
- 指定路径不是一个目录.
- EACCES
- 指定路径拒绝访问.
- ELOOP
- 在解析 my_addr 时发现过多符号连接.
bind - 将一个名字和一个套接字绑定到一起的更多相关文章
- 为什么accpet会重新返回一个套接字
在服务器端,socket()返回的套接字用于监听(listen)和接受(accept)客户端的连接请求.这个套接字不能用于与客户端之间发送和接收数据. accept()接受一个客户端的连接请求,并返回 ...
- UNIX网络编程——原始套接字的魔力【续】
如何从链路层直接发送数据帧 上一篇里面提到的是从链路层"收发"数据,该篇是从链路层发送数据帧. 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑 ...
- 套接字编程相关函数(2:TCP套接字编程相关函数)
本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...
- 套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
说明 本文下面内容基本上是截取自stackoverflow,针对这两个选项,在另外一篇文章中做了总结,请移步<Linux TCP套接字选项 之 SO_REUSEADDR && S ...
- Linux进程间通信(八):流套接字 socket()、bind()、listen()、accept()、connect()、read()、write()、close()
前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程.通常我们使用socket进行网络编 ...
- Linux进程间通信(九):数据报套接字 socket()、bind()、sendto()、recvfrom()、close()
前一篇文章,Linux进程间通信——使用流套接字介绍了一些有关socket(套接字)的一些基本内容,并讲解了流套接字的使用,这篇文章将会给大家讲讲,数据报套接字的使用. 一.简单回顾——什么是数据报套 ...
- fsockopen — 打开一个网络连接或者一个Unix套接字连接
fsockopen (PHP 4, PHP 5, PHP 7) 说明 resource fsockopen ( string $hostname [, int $port = -1 [, int &a ...
- liunx 套接字编程(Linux_C++)
网络中的进程是如何通信的? 在网络中进程之间进行通信的时候,那么每个通信的进程必须知道它要和哪个计算机上的哪个进程通信.否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行 ...
- Linux套接字编程
网络中的进程是如何通信的? 在网络中进程之间进行通信的时候,那么每个通信的进程必须知道它要和哪个计算机上的哪个进程通信.否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行 ...
随机推荐
- u-boot支持LCD显示(基于TQ2440)【转】
本文转载自:http://www.cnblogs.com/pengdonglin137/p/4633877.html u-boot支持LCD显示(基于TQ2440) 阅读目录(Content) 平 ...
- POJ3694 Network —— 边双联通分量 + 缩点 + LCA + 并查集
题目链接:https://vjudge.net/problem/POJ-3694 A network administrator manages a large network. The networ ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
- python-----群发图片
使用wxpy库给3个人群发同一张图片 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/2/22 15:25 # @Author ...
- 【黑金教程笔记之002】【建模篇】【Lab 01 永远的流水灯】—笔记&勘误
学习并行操作的思想. 勘误001: Page 17,模块图下方,“扫描频配置定为100Hz”应为10Hz. 勘误002: Page 17,最后一行 “10ms”应为100ms:“2.5ms”应为25m ...
- ubuntu中desktop与alternate版本的区别(转载)
转自:http://www.hyleong.com/ubuntu-desktop-alternate/ 今天ubuntu发布了11.04版本,但是下载的时候有desktop和alternate版本,他 ...
- python 闭包 Closure 函数作为返回值
一.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. >>> def lazy_sum(*args): ... def sum(): ... ax = ...
- css覆盖select样式并添加小箭头
.select { border-radius: 5px; border: 1px #F4A627 solid; -webkit-appearance: none;//清除默认样式 backgroun ...
- 【转】Hive安装及使用攻略
Posted: Jul 16, 2013 Tags: HadoophiveHiveQLsql分区表 Comments: 18 Comments Hive安装及使用攻略 让Hadoop跑在云端系列文章, ...
- Golang 在 Linux CentOS 6.5 服务器上实现 博客后台程序开机启动
在linux下想实现开机启动的方法很多,这里我采用了在/etc/rc.local里写shell指令的方式. 以下就以我的实际操作为例子讲述,很多地方需要看官自己调整信息哦! 1.在/etc/rc.lo ...