命名socket

创建socket时,我们给它指定了地址族,但是并未指定使用该地址族中的哪个具体socket地址。将一个 socket与socket地址绑定称为给socket命名。在服务器程序中,我们通常要命名socket,因为只有命名后客户端才能知道该如何连接它。客户端则通常不需要命名socket,而是采用匿名方式,即使用操作系统自动分配的socket地址。命名socket的系统调用是bind,其定义如下:

#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr * my_addr, socklen_t addrlen);

bind将my_addr所指的socket地址分配给未命名的sockfd文件描述符,addrlen参数指出该socket地址的长度。

bind成功时返回0,失败则返回-1并设置errno。其中两种常见的errno是EACCES和EADDRINUSE,它们的含义分别是:
1)EACCES,被绑定的地址是受保护的地址,仅超级用户能够访问。比如普通用户将socket绑定到知名服务端口(端口号为0~1023)上时, bind 将返回EACCES错误。
2)EADDRINUSE,被绑定的地址正在使用中。比如将socket绑定到一个处于TIME_WAIT状态的socket地址。

5.3命名socket相关推荐

  1. 1.Socket通信

    本博客部分内容参考教程来自C语言中文网. 进入socket通信首先要了解两个概念,第一:服务器端,第二:客户端.(区别是两者的服务对象不同.服务器端是为客户端服务的,客户端就是为真正的"客户 ...

  2. stm32c8t6的can通信实验代码_TCP的连接建立与关闭状态及数据传输通信过程【含有 PHP socket API 测试实验代码】...

    php中文网最新课程 每日17点准时技术干货分享 本文章使用 PHP 代码来测试 TCP 传输层的一个通信过程.TCP/IP 协议关于该协议的详细内容可自行查阅 <>PHP 的 tcp/u ...

  3. linux网络编程二:基础socket, bind, listen, accept, connect

    linux网络编程二:基础socket, bind, listen, accept, connect 1. 创建socket #include <sys/types.h>     #inc ...

  4. Linux进程间通信方式--本地socket

    先上一个代码 服务端: [cpp] view plaincopy //s_unix.c #include <stdio.h> #include <sys/types.h> #i ...

  5. 笔记2:VC++ socket通信实例

    VC++ socket通信实例 网络中进程之间如何通信   首要解决的问题是如何唯一标识一个进程,在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们 ...

  6. 本地进程间通信(二)--套接字socket

    目录 一.什么是Socket? 二.socket通信流程 Server端 一.创建socket 二.命名socket. 三.绑定 四.监听 五.关闭 Client端 一.创建socket 二.conn ...

  7. Socket编程入门C++

    最近做了Gprs的通讯项目,下位机已经完成接手上位机的编写,属于赶鸭子上架现学现卖了. socket入门推荐一个文件Socket函数.chm帮助文件,通过这个文件你可以快速的上手Socket编程,里边 ...

  8. tcpip Socket编程入门

    最近做了Gprs的通讯项目,下位机已经完成接手上位机的编写,属于赶鸭子上架现学现卖了. socket入门推荐一个文件Socket函数.chm帮助文件,通过这个文件你可以快速的上手Socket编程,里边 ...

  9. Socket与TCP状态

    三次握手与四次挥手大家都比较清楚,下面是TCP状态转移图 配和下面的图更加容易理解各个状态的变化: socket的创建,它就是可读.可写.可控制.可关闭的文件描述符. int socket(int d ...

最新文章

  1. Javascript aop(面向切面编程)之around(环绕)
  2. .net core word转pdf_免费在线转换PDF转Word、Word转PDF,办公必备神器
  3. 【平衡规划】Arithmetic Operations(CF1654E)
  4. 管理开机启动:chkconfig
  5. mysql 备库同步_MYSQL主从库同步配置过程
  6. mysql 常用日期,时间函数
  7. asm扩容流程_AIX之ASM存储扩容
  8. spring与security做项目的时候,控制台一直输出显示favicon.ico错误,解决方案!
  9. C++ stack(STL stack)
  10. PRISM概率模型检测器初使用--骰子模型
  11. 计算机网络教程第五版|微课版 - 相关微课视频
  12. Cron 表达式 星期建议使用 MON 等单词缩写
  13. 【渝粤题库】广东开放大学 岭南文化概论 形成性考核
  14. Matlab LZW编码
  15. mysql innodb 缓冲池_mysql8 参考手册--配置多个InnoDB缓冲池实例
  16. 今日头条运营秘诀分享:让你的文章阅读量和收入都“飞”起来
  17. c语言的.h文件怎么写,c语言自己写一个.h的头文件
  18. HaaS EDU物联网项目实战:微信小程序实现云养花
  19. 华为、董明珠纷纷站队“京鱼座”,京东IOT实力不容小觑
  20. python暴力破解zip加密文件

热门文章

  1. java 生成复杂的word_Java 动态生成复杂 Word
  2. Mysql-锁/隔离级别
  3. dot全称_游戏dot是什么
  4. efs文件解密软件_Pylocky勒索软件的受害者
  5. java 多线程,线程安全等定义
  6. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
  7. C常用的字符串函数实现
  8. caffe中的fine-tuning
  9. 初识大数据(四. 大数据与人工智能的关系)
  10. rest_framework-00-规范-APIview源码解析-认证