C语言listen()函数:等待连接头文件:

#include

定义函数:

int listen(int s,int backlog);

函数说明:listen()用来等待参数s 的socket 连线. 参数backlog 指定同时能处理的最大连接要求,如果连接数目达此上限则client 端将收到ECONNREFUSED 的错误. Listen()并未开始接收连线,只是设置socket 为listen 模式,真正接收client 端连线的是accept(). 通常listen()会在socket(),bind()之后调用,接着才调用accept().

返回值:成功则返回0,失败返回-1,错误原因存于errno

附加说明:listen()只适用SOCK_STREAM 或SOCK_SEQPACKET 的socket 类型. 如果socket 为AF_INET 则参数backlog 最大值可设至128.

错误代码:

EBADF 参数sockfd 非合法socket 处理代码

EACCESS 权限不足

EOPNOTSUPP 指定的socket 并未支援listen 模式.

C语言bind()函数:对socket定位头文件:

#include #include

定义函数:int bind(int sockfd,struct sockaddr * my_addr,int addrlen);

函数说明:bind()用来设置给参数sockfd 的socket 一个名称. 此名称由参数my_addr 指向一sockaddr 结构,对于不同的socket domain 定义了一个通用的数据结构

struct sockaddr

{

unsigned short int sa_family;

char sa_data[14];

};

1、sa_family 为调用socket()时的domain 参数,即AF_xxxx 值.

2、sa_data 最多使用14 个字符长度.

此sockaddr 结构会因使用不同的socket domain 而有不同结构定义,例如使用AF_INET domain,其socketaddr 结构定义便为

struct socketaddr_in

{

unsigned short int sin_family;

uint16_t sin_port;

struct in_addr sin_addr;

unsigned char sin_zero[8];

};

struct in_addr

{

uint32_t s_addr;

};

1、sin_family 即为sa_family

2、sin_port 为使用的port 编号

3、sin_addr. s_addr 为IP 地址 sin_zero 未使用.

参数 addrlen 为sockaddr 的结构长度.

返回值:成功则返回0,错误原因存于errno 中.

错误代码:

1、EBADF 参数sockfd 非合法socket 处理代码.

2、EACCESS 权限不足

3、ENOTSOCK 参数sockfd 为一文件描述词,非socket.

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

c语言程序开发中连接是,C语言中等待socket连接和对socket定位的方法相关推荐

  1. c++实现二叉树中节点的最大距离 - c++语言程序开发技术文章,c++实现二叉树中节点的最大距离...

    文章前半部分能懂,可是后面的Milo不是很理解,可能有待以后学习..... 微软面试题之一,难度系数中,题目描述如下: 求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看 ...

  2. 解决小程序开发:未找到 app.json 中的定义的 pages “pages/index/index“ 对应的 WXML 文件

    解决小程序开发:未找到 app.json 中的定义的 pages "pages/index/index" 对应的 WXML 文件 (亲测,以解决)如果节约了你的宝贵时间,辛苦点个赞 ...

  3. c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt

    c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...

  4. c语言程序一些常见的不足,C语言常见错误分析及解决方法

    C.C语言的应用很广泛,越来越多的程序员希望能够学好C由于C语言的编译系统对语法的检查不如其他语言那么严格,因此C语.下面将C语言中初学者最常见的错误分析如下; 1 语句书写错误 由于大部分学生都是初 ...

  5. 统计字符 c语言程序,统计字符个数的C语言程序.doc

    统计字符个数的C语言程序.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...

  6. 微信小程序开发——点击按钮获取用户授权没反应或反应很慢的解决方法

    微信小程序开发--点击按钮获取用户授权没反应或反应很慢的解决方法 参考文章: (1)微信小程序开发--点击按钮获取用户授权没反应或反应很慢的解决方法 (2)https://www.cnblogs.co ...

  7. 微信小程序开发实战3 使用Go语言开发Web服务

    3.使用Go语言开发Web服务 微信小程序提供了一系列服务端API用以配合小程序前端来完成相应的功能,以及帮助开发者进行各类数据分析.业务管理和信息查询等操作.例如小程序用户信息的获取就是通过服务端A ...

  8. 下列不属于C语言程序开发步骤,程序设计技术(C语言)-中国大学mooc-题库零氪...

    第1章 程序设计基础 第1章 选择题 1.以下不属于算法基本特征的是( ). A.有穷性 B.有效性 C.可行性 D.有一个或多个输出 2.N-S图与传统流程图比较,主要优点是( ) A.杜绝了程序的 ...

  9. 开发一个c语言程序需要经过哪些步骤,C语言编译过程的4个步骤

    GCC 编译器在编译一个C语言程序时需要经过以下 4 步: (1)将C语言源程序预处理,生成.i文件. (2)预处理后的.i文件编译成为汇编语言,生成.s文件. (3)将汇编语言文件经过汇编,生成目标 ...

  10. linux更改cxxflags环境变量,在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)...

    为了能中一个系统上开发64或32位C++程序,费了些周折,现在终于能够开始干过了.在此记录此时针对Q5.4版本的32位开发环境配置过程. 1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发 ...

最新文章

  1. render函数和redirect函数的区别+反向解析
  2. iframe嵌套显示整个页面_【HTML】框架标签lt;iframegt;
  3. CVE-2021-40444 0 day漏洞利用
  4. mysql查询当天最新的一张表_mysql 查询当天、本周,本月,上一个月的数据
  5. Android View相关知识点
  6. 学计算机土味情话,计算机土味情话
  7. 深度学习行人重识别综述与展望
  8. 我的docker随笔21:web 服务器部署
  9. 中国接种环行业市场供需与战略研究报告
  10. CentOS下MySQL安装后配置和设置
  11. 关于MYSQL ERROR1045 报错的解决办法
  12. 用友u8反记账反结账如何处理
  13. vue 实现文字转语音
  14. APP专项测试方法和工具的使用
  15. 传说中的世界500强面试题-智力急转弯
  16. 服务器信息批量收集,如何批量导入或导出服务器信息
  17. 文字栅格化剪切蒙版——创建文字遮罩效果的两种方法——梦幻游乐园
  18. 淦!为什么到处都是广告!
  19. 打开计算机左侧的桌面不见了,Win7资源管理器左侧桌面快捷方式不见了怎么办?...
  20. 操作系统实验一到实验九合集(哈工大李治军)

热门文章

  1. 你真的懂select吗??
  2. 桶排序 Bin Sort
  3. Java二手车交易系统
  4. php socket非阻塞,php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()...
  5. 小程序 实名信息_【小程序】实名认证流程
  6. 云桌面技术在全国计算机等级考试中发挥护航作用
  7. linux面试准备2
  8. ASP excel导出/导入Access数据库(代码+实例下载)
  9. 理解AppDomain
  10. 优秀架构师养成记:我是如何逆袭走向“人生巅峰”的?