【网络编程】学习笔记--02 套接字类型与协议设置
2021/11/9 14:10:37
本文主要是介绍【网络编程】学习笔记--02 套接字类型与协议设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先要清楚什么是协议(protocol)?
简言之,协议就是为了完成数据交换而定好的约束。
回顾我们在《学习笔记 --01》中创建套接字socket中的代码:
#include<sys/socket.h> int socket(int domain,int type,int protocol) | |- domain 套接字中使用的协议族(Protocol Family)信息 |- type 套接字数据传输类型信息 |- protocol 计算机间通信中使用的协议信息
接下来我们将会根据该函数的参数进行具体展开讨论:
1.协议族(domain/Protocal Family):
这里我们通常会用PF_INET 意思为 IPv4互联网协议族
2.套接字类型(Type):
套接字类型指的是套接字的数据传输方式。
SOCK_STREAM:TCP(面向连接的套接字)。特点:传输过程中数据不会消失,按序传输数据,传输数据不存在边界
SOCK_DGRAM: UDP(面向消息的套接字)。特点:速度快,但无法避免损失,存在数据边界,数据边界意味着接收数据的次数应和传输次数相同
3.协议的最终选择(protocol):
其实传递前2个参数即可创建所需的套接字。所以大部分情况下可以向第三个参数传递0,除非遇到以下情况:
"同一协议族中存在多个数据传输方式相同的协议”
暨数据传输方式相同,但协议不同,此时需要通过第三个参数具体指定协议信息。
若是TCP的话,则为IPPROTO_TCP
若是UDP的话,则为IPPROTO_UDP
最终成果展示如下:
面向连接的套接字: int tcp_socket = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP) 面向消息的套接字: int udp_socket = socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP)
这篇关于【网络编程】学习笔记--02 套接字类型与协议设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南