浅谈socket网络编程函数参数(一)
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网络编程函数参数(一)相关推荐
- 浅谈socket网络编程函数参数(二)
bind()函数 bind()函数把一个地址族中的特定地址赋给socket. 例如对应AF_INET.AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket. int bind( ...
- 【C/C++服务器开发】socket网络编程函数接口详解
文章目录 一.前言 TCP 网络编程 结合三次握手连接的 TCP socket 结合四次次挥手的 TCP socket 二.socket常用函数和数据结构 1.socket()函数 2.bind() ...
- socket接收时信号量阻塞了会丢数据吗_浅谈Java网络编程——非阻塞I/O
文件描述符(descriptors) Unix中I/O的基本组成元素是字节序列.大多数程序应用于字节流或I/O流. 进程通过描述符引用I/O流,也被称作文件描述符.管道.文件.POSIX IPC's( ...
- 浅谈Socket编程
浅谈Socket编程 说到Socket,想必大家会觉得陌生又熟悉.许多同学听说过Socket,但仅仅知道它翻译成中文叫做套接字,除此之外似乎并没有太多的了解了.那么今天我就来抛砖引玉地聊一聊Socke ...
- java socket 异步回调函数_浅谈socket同步和异步、阻塞和非阻塞、I/O模型
原标题:浅谈socket同步和异步.阻塞和非阻塞.I/O模型 在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式 同步/异步主要针 ...
- 浅谈Java网络编程之Socket (2)
<浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...
- python编写函数_浅谈Python 函数式编程
匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...
- 多实例多进程网络编程PHP,php socket网络编程基础知识(四):多进程
标签:status 传递 windows 返回 修改 队列 _for 响应 关联 说明 php在web编程时是不需要考虑多进程的,但整个php流程是涉及到多进程的,只不 ...
- Linux C++/Java/Web/OC Socket网络编程
一,Linux C++ Socket网络编程 1.什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制 ...
最新文章
- GDB调试--以汇编语言为例
- 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体
- MATLAB从入门到精通系列之如何实现KNN算法
- angularjs的双向绑定原理实现
- tensorflow,显卡驱动,CUDA傻傻分不清
- 使用 kind 快速搭建一个 Kubernetes 测试环境
- 并行算法 Parallel Algorithm -- 提高执行效率
- JDBC链接SQLServer2005 Express
- 前端开发面试题收集(html部分)
- django urls路由匹配分发
- 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)
- MyEclipse 中文转英文
- 金山与永中,谁主沉浮?
- 11种典型的时间序列回归预测方法大集合——附代码
- 发那科机器人GI分配_发那科机器人调试离线编程与应用 “I/O的分配”
- cv2安装与基本函数
- C#学习笔记(四):.net 第一个业务逻辑(同名用户不可创建)(优化逻辑)
- python爬虫(豆瓣影评requests版并下载电影封面图片)
- 小米笔记本Air12双系统安装(win10+ubuntu18.04)
- 如何在Windows 10上将Bing的每日照片作为墙纸