5.3命名socket
命名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.Socket通信
本博客部分内容参考教程来自C语言中文网. 进入socket通信首先要了解两个概念,第一:服务器端,第二:客户端.(区别是两者的服务对象不同.服务器端是为客户端服务的,客户端就是为真正的"客户 ...
- stm32c8t6的can通信实验代码_TCP的连接建立与关闭状态及数据传输通信过程【含有 PHP socket API 测试实验代码】...
php中文网最新课程 每日17点准时技术干货分享 本文章使用 PHP 代码来测试 TCP 传输层的一个通信过程.TCP/IP 协议关于该协议的详细内容可自行查阅 <>PHP 的 tcp/u ...
- linux网络编程二:基础socket, bind, listen, accept, connect
linux网络编程二:基础socket, bind, listen, accept, connect 1. 创建socket #include <sys/types.h> #inc ...
- Linux进程间通信方式--本地socket
先上一个代码 服务端: [cpp] view plaincopy //s_unix.c #include <stdio.h> #include <sys/types.h> #i ...
- 笔记2:VC++ socket通信实例
VC++ socket通信实例 网络中进程之间如何通信 首要解决的问题是如何唯一标识一个进程,在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们 ...
- 本地进程间通信(二)--套接字socket
目录 一.什么是Socket? 二.socket通信流程 Server端 一.创建socket 二.命名socket. 三.绑定 四.监听 五.关闭 Client端 一.创建socket 二.conn ...
- Socket编程入门C++
最近做了Gprs的通讯项目,下位机已经完成接手上位机的编写,属于赶鸭子上架现学现卖了. socket入门推荐一个文件Socket函数.chm帮助文件,通过这个文件你可以快速的上手Socket编程,里边 ...
- tcpip Socket编程入门
最近做了Gprs的通讯项目,下位机已经完成接手上位机的编写,属于赶鸭子上架现学现卖了. socket入门推荐一个文件Socket函数.chm帮助文件,通过这个文件你可以快速的上手Socket编程,里边 ...
- Socket与TCP状态
三次握手与四次挥手大家都比较清楚,下面是TCP状态转移图 配和下面的图更加容易理解各个状态的变化: socket的创建,它就是可读.可写.可控制.可关闭的文件描述符. int socket(int d ...
最新文章
- Javascript aop(面向切面编程)之around(环绕)
- .net core word转pdf_免费在线转换PDF转Word、Word转PDF,办公必备神器
- 【平衡规划】Arithmetic Operations(CF1654E)
- 管理开机启动:chkconfig
- mysql 备库同步_MYSQL主从库同步配置过程
- mysql 常用日期,时间函数
- asm扩容流程_AIX之ASM存储扩容
- spring与security做项目的时候,控制台一直输出显示favicon.ico错误,解决方案!
- C++ stack(STL stack)
- PRISM概率模型检测器初使用--骰子模型
- 计算机网络教程第五版|微课版 - 相关微课视频
- Cron 表达式 星期建议使用 MON 等单词缩写
- 【渝粤题库】广东开放大学 岭南文化概论 形成性考核
- Matlab LZW编码
- mysql innodb 缓冲池_mysql8 参考手册--配置多个InnoDB缓冲池实例
- 今日头条运营秘诀分享:让你的文章阅读量和收入都“飞”起来
- c语言的.h文件怎么写,c语言自己写一个.h的头文件
- HaaS EDU物联网项目实战:微信小程序实现云养花
- 华为、董明珠纷纷站队“京鱼座”,京东IOT实力不容小觑
- python暴力破解zip加密文件
热门文章
- java 生成复杂的word_Java 动态生成复杂 Word
- Mysql-锁/隔离级别
- dot全称_游戏dot是什么
- efs文件解密软件_Pylocky勒索软件的受害者
- java 多线程,线程安全等定义
- LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
- C常用的字符串函数实现
- caffe中的fine-tuning
- 初识大数据(四. 大数据与人工智能的关系)
- rest_framework-00-规范-APIview源码解析-认证