socket函数详解 (有了新的认识)
来源:互联网 发布:dnf网络冲突和别人 编辑:程序博客网 时间:2024/06/03 18:47
我们先来看一下socket函数的原型:
SOCKET PASCAL FAR socket (int af, int type, int protocol);
典型的调用方式为:
unsigned int sockSrv = socket(AF_INET, SOCK_STREAM, 0);
1.af是address family的缩写,实际上就是指明域domain, 这个af主要是用来区分是创建ipv4的套接字还是ipv6的套接字。 当然, 顺便说一下, 如果是在unix中, 第一个参数还可以是AF_UNIX, 表示这个socket既不是ipv4的socket, 也不是ipv6的socket, 而是非网络形式的unix域socket, 可以用来进行非网络形式的进程间通信。 在很多嵌入式系统中, 进程间的通信均是通过非网络形式的unix域套接字来完成的。不过, 我们要明白, unix域套接字的客户端和服务端进行通信时, 客户端和服务端必须位于同一台机器上, 而且效率比网络套接字更高。
2. 我以前总是以为, 这个type值决定了是tcp套接字还是udp套接字, 其实不是的。 type值决定的是流套接字还是数据报套接字或者其他。 注意流套接字不一定是tcp, 数据报套接字也不一定是udp.
3. protocol这个值通常为0, 为0的时候是什么意思呢? 意思是, 如果type是流套接字, 且protocol为0, 那么就是就是默认的流套接字---tcp套接字。 同理, 如果type是数据报套接字, 且protocol为0, 那么就是默认的数据报套接字---udp套接字。
返回值其实就是一个无符号整形,用于标识和索引套接字。可以通过返回值判断套接字是否创建成功。
- socket函数详解 (有了新的认识)
- socket函数详解 (有了新的认识)
- 对于学习Linux有了新的认识
- 对内存泄漏有了新的认识
- 对电脑的启动有了新的认识
- 对定点计算与浮点计算有了新的认识
- 有了新的发现
- 有了新的工作
- 位操作--对优化算法有了个新的认识
- 位操作--对优化算法有了个新的认识
- 【1】有了新的开始
- 自己对函数接口的新认识
- php5.6及其以上版本有了新特性,函数可以传入不定数目的参数
- 电子书的制做有了新进展
- 构造函数模式的一点新的认识
- socket select()函数详解
- Socket的简单认识
- 工作流的新认识
- Java编程基础
- 面向对象六大原则
- 机器学习算法2——决策树
- 使用jquery的getjson()遇到的跨域访问问题
- 动态内存的分配
- socket函数详解 (有了新的认识)
- springMVC浏览器接受json报406错误的解决方法
- Notice: unserialize(): Error at offset 134526789 of 2136547489 bytes in file.php on line 130
- Android.bat 常用命令介绍
- [初学Unity]Graphics-03.Cameras and Effects && Geometry in Unity
- Shape的参数
- Java知识点总结
- Python对mysql的连接、插入、更新
- spring事务管理