当前位置: 首页 > news >正文

Socket 编程预备

1、认识端口号

端口号(port)是传输层协议的内容

• 端口号是一个2字节16位的整数;

• 端口号用来标识一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来 处理;

• IP地址+端口号能够标识网络上的某一台主机的某一个进程;

• 一个端口号只能被一个进程占用.

0-1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用层协议,他们的 端口号都是固定的.

1024-65535:操作系统动态分配的端口号.客户端程序的端口号,就是由操作 系统从这个范围分配的.

C++ socket n. (电源)插座;(电器上的)插口,插孔,管座;槽;窝;托座;臼;孔穴 vt. 把…装入插座;给…配插座

我们把ip+port叫做套接字socket        所以,网络通信的本质,也是进程间通信

2、TCP VS UDP

TCP 协议:传输层的有连接协议,能可靠传输,基于字节流工作
UDP 协议:传输层的无连接协议,传输不可靠,面向数据报

3. 网络字节

序发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出;

• 接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从 低到高的顺序保存;

• 因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高 地址.

• TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节.

• 不管这台主机是大端机还是小端机,都会按照这个TCP/IP规定的网络字节序来 发送/接收数据;

• 如果当前发送主机是小端,就需要先将数据转成大端;否则就忽略,直接发送即 可

4. socket 编程接口

socket 常见API// 创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器)int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服务器)int bind(int socket, const struct sockaddr *address,socklen_t address_len);// 开始监听socket (TCP, 服务器)int listen(int socket, int backlog);// 接收请求 (TCP, 服务器)int accept(int socket, struct sockaddr* address,socklen_t* address_len);// 建立连接 (TCP, 客户端)int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

5、sockaddr 结构

http://www.dtcms.com/a/319048.html

相关文章:

  • 拥抱云原生:从传统架构到云原生架构的演进与实践
  • 算法题(182):滑动窗口
  • mysql基础-分组查询
  • 全面解析 URL 重定向原理:从协议、实现到安全实践
  • 【物联网】基于树莓派的物联网开发【24】——树莓派安装influxDB时序数据库
  • 套接字编程UDP
  • Android-Kotlin基础(Jetpack③-LiveData)
  • 数据结构初阶(4)栈
  • Python生成统计学公式
  • 数据结构:双向链表(Doubly Linked List)
  • 快速搭建开源网页编辑器(vue+TinyMCE)
  • 大屏数据展示页面,数据可视化可以用到的框架和插件
  • 剧本杀小程序系统开发:推动社交娱乐产业创新发展
  • requests模块
  • Web3.0引领互联网未来,助力安全防护升级
  • 基于django的非物质文化遗产可视化网站设计与实现
  • 重学React(三):状态管理
  • Java如何快速实现短信登录?
  • 【指南版】网络与信息安全岗位系列(三):安全运维工程师
  • 农作物优选,耕耘希望的田野
  • Vue3获取当前页面相对路径
  • 008 前端vue
  • Android-Kotlin基础(Jetpack①-ViewModel)
  • 【遥感图像入门】近三年遥感图像建筑物细粒度分类技术一览
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第七天(Vue)(二)
  • Tiger任务管理系统-10
  • vue打包号的文件如何快速查找文件打包后的位置
  • 聚水潭API数据接口开发手机端网页查询商品仓位库位库存工具,支持扫描识别,预览图片
  • Numpy科学计算与数据分析:Numpy线性代数基础与实践
  • 决策树技术详解:从理论到Python实战