1.socket函数

 #include <sys/types.h>          /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);

功能:创建套接字
参数:domain:AF_INET,AF_INET6, AF_UNIX;type:SOCK_STREAM ,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW ,SOCK_RDM ,SOCK_PACKET ;protocol:一般传入0
返回值:成功返回创建的socket的文件描述符;失败返回-1

2.bind函数

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

功能:服务器程序所监听的网络地址和端口号通常是不变的,客户端程序得知服务器程序的IP地址和端口号之后,向服务器发起连接,因此服务器需要调用bind绑定一个固定的网络地址和端口号。bind函数的作用是把sockft和addr绑定在一起,sockft是一个网络通讯文件描述符,监听addr的地址和端口号。
参数:sockft:文件描述符;addr:IP地址和端口号;addrlen:sizeof(addr)
返回值:成功返回0;失败返回-1

3.listen函数

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>int listen(int sockfd, int backlog);

功能:允许同时建立连接的数目
参数:sockft:文件描述符;backlog:数量
返回值:成功返回0;失败返回-1

4.accept函数

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

功能:三方握手完成后,服务器调用accept函数接受连接,如果没有客户端连接请求,服务器就阻塞等待直到有客户端连接上来。
参数:sockft:文件描述符;addr:传出参数,返回连接客户端的地址信息,IP地址和端口号;addrlen:传入sizeof(addr),传出真正接收到地址结构体的大小。
返回值:成功返回一个新的文件描述符,用于和客户端通信;失败返回-1。

5.connect函数

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

功能:客户端需要调用connect函数连接服务器
参数:sockft:文件描述符;addr:传入参数,服务器的addr,包括IP地址和端口号;addrlen:传入参数,sizeof(addr)。
返回值:成功返回0,失败返回-1。

linux的基础知识——网络套接字函数相关推荐

  1. linux的基础知识——本地套接字

    1.本地套接字

  2. linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构

    1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...

  3. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  4. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  5. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  6. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  7. 权限认证php,2016年Linux认证基础知识:php做权限管理

    2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...

  8. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)

    IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...

  9. 世界上第一台计算机釆用的主要是什么电子管,基础知识-网络教育

    基础知识-网络教育 (89页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 基础知识单选题1. 下列关于世界上第一台电子计算机ENIAC的叙 ...

最新文章

  1. [洛谷P5147]随机数生成器
  2. PostgreSQL 客户端乱码问题
  3. 翟树卿:如何让数据挖掘助力精准化营销
  4. UA MATH575B 数值分析下VI 统计物理的随机模拟方法2
  5. 【uni-app】小程序实现微信在线聊天(私聊/群聊)
  6. windowskb2685811补丁_KB898461补丁
  7. BP神经网络反向传播手动推导
  8. LeetCode 1629. 按键持续时间最长的键
  9. osi模型:七层模型介绍_联网| OSI模型能力问题和解答 套装1
  10. IKM JAVA , SPRING, HIBERNATE_ANZ
  11. Android 使用反射调用StorageManager中 Hide方法getVolumeList、getVolumeState
  12. 64位x86-64处理器
  13. 深究递归和迭代的区别、优缺点及实例对比
  14. A Survey on Contrastive Self-Supervised Learning(对比式自监督学习研究)-----pretext tasks、Downstream task解释
  15. Java代码导出数据库百万数据生成sql脚本
  16. C语言输出4*5的矩阵
  17. 模电学习第三天--三极管梳理
  18. ACCESS数据库窗体
  19. javafx 实现绘图板
  20. 韩媒看中国量子计算机,韩媒:量子计算机原本是欧美在玩中国却令人吃惊

热门文章

  1. LeetCode 640. 求解方程(字符串)
  2. LeetCode 167. 两数之和 II - 输入有序数组(双指针)
  3. LeetCode 129. 求根到叶子节点数字之和(DFS)
  4. oss图片跨域问题_图片存储解决方案-阿里云对象存储
  5. c语言程序做成可执行文件,windows环境下C程序生成可执行文件
  6. input和output哪个是充电_input是什么接口?告诉大家这个小常识,以后音箱接线更容易...
  7. Opencv visual studio c++ 环境搭建
  8. 从零搭建基于知识图谱的问答系统(以医疗行业为例)
  9. 美团 iOS 工程 zsource 命令背后的那些事儿
  10. Redis系列教程(六):Redis缓存和MySQL数据一致性方案详解