socket函数解析

概念:

每个进程的进程空间里都有一个socket描述符表。套接字描述符表属于一个进程,而socket地址结构位于操作系统的内核缓冲。

函数原型

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

函数参数

family参数

默认选择AF_INET

名称 目的
AF_INET IPv4网络通信
AF_INET6 IPv6网络通信
AF_PACKET 链路层通信
AF_UNIX, AF_LOCAL 本地通信

type参数

protocol参数

  • 可设置为0,表示选择当前family和type组合下protocol的系统默认值
IPPROTO_TCP IPPTOTO_UDP IPPROTO_SCTP IPPROTO_TIPCTCP
TCP传输协议 UDP传输协议 STCP传输协议 TIPC传输协议

用法

如果我们在新建套接字的时候使用socket(PF_INET,SOCK_STREAM,0),那么内核就会默认给你把protocol修正为IPPROTO_TCP。

    int lst_fd = -1;lst_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (lst_fd < 0) {perror("socket error");return -1;}

浅谈socket网络编程函数参数(一)相关推荐

  1. 浅谈socket网络编程函数参数(二)

    bind()函数 bind()函数把一个地址族中的特定地址赋给socket. 例如对应AF_INET.AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket. int bind( ...

  2. 【C/C++服务器开发】socket网络编程函数接口详解

    文章目录 一.前言 TCP 网络编程 结合三次握手连接的 TCP socket 结合四次次挥手的 TCP socket 二.socket常用函数和数据结构 1.socket()函数 2.bind() ...

  3. socket接收时信号量阻塞了会丢数据吗_浅谈Java网络编程——非阻塞I/O

    文件描述符(descriptors) Unix中I/O的基本组成元素是字节序列.大多数程序应用于字节流或I/O流. 进程通过描述符引用I/O流,也被称作文件描述符.管道.文件.POSIX IPC's( ...

  4. 浅谈Socket编程

    浅谈Socket编程 说到Socket,想必大家会觉得陌生又熟悉.许多同学听说过Socket,但仅仅知道它翻译成中文叫做套接字,除此之外似乎并没有太多的了解了.那么今天我就来抛砖引玉地聊一聊Socke ...

  5. java socket 异步回调函数_浅谈socket同步和异步、阻塞和非阻塞、I/O模型

    原标题:浅谈socket同步和异步.阻塞和非阻塞.I/O模型 在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式 同步/异步主要针 ...

  6. 浅谈Java网络编程之Socket (2)

    <浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...

  7. python编写函数_浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  8. 多实例多进程网络编程PHP,php socket网络编程基础知识(四):多进程

    标签:status   传递   windows   返回   修改   队列   _for   响应   关联 说明 php在web编程时是不需要考虑多进程的,但整个php流程是涉及到多进程的,只不 ...

  9. Linux C++/Java/Web/OC Socket网络编程

    一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...

最新文章

  1. GDB调试--以汇编语言为例
  2. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体
  3. MATLAB从入门到精通系列之如何实现KNN算法
  4. angularjs的双向绑定原理实现
  5. tensorflow,显卡驱动,CUDA傻傻分不清
  6. 使用 kind 快速搭建一个 Kubernetes 测试环境
  7. 并行算法 Parallel Algorithm -- 提高执行效率
  8. JDBC链接SQLServer2005 Express
  9. 前端开发面试题收集(html部分)
  10. django urls路由匹配分发
  11. 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
  12. MyEclipse 中文转英文
  13. 金山与永中,谁主沉浮?
  14. 11种典型的时间序列回归预测方法大集合——附代码
  15. 发那科机器人GI分配_发那科机器人调试离线编程与应用 “I/O的分配”
  16. cv2安装与基本函数
  17. C#学习笔记(四):.net 第一个业务逻辑(同名用户不可创建)(优化逻辑)
  18. python爬虫(豆瓣影评requests版并下载电影封面图片)
  19. 小米笔记本Air12双系统安装(win10+ubuntu18.04)
  20. 如何在Windows 10上将Bing的每日照片作为墙纸

热门文章

  1. Bootstrap-table 部分浏览器显示不出来
  2. 靠谱的div引入任何外链内容
  3. [欧拉函数] Bzoj P2186 沙拉公主的困惑
  4. 反序列化 还是记一下吧
  5. easyUI validate函数【总结篇-部分转】
  6. 关于string转整数
  7. 8-18-Exercise
  8. (X)HTML嵌套规则
  9. Javascript--File对象
  10. java输出减法表,Calendarjava时间加减法和格式化输出