| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Socket day1 -> 正文阅读 |
|
[网络协议]Socket day1 |
一、两种通信机制: ? ? ? ? 1)流(steam):基于TCP,数据不丢失,不重复,不错序 ? ? ? ? 2)数据报(datagram):基于UDP协议,不需建立和维持连接,效率高,丢失数据 二、简单通信流程: ? ? ? ? 1、客户端: ? ? ? ? 1)socket() 创建流式socket ? ? ? ? 2)connect() 向服务器发起连接请求 ? ? ? ? 3)send()/recv() 发送/接受数据 ????????4)close() 关闭socket连接,释放资源 ? ? ? ? ????????2、服务端 ? ? ? ? 1)socket() ? ? ? ? 2)bind() 指定用于通信的IP地址和端口 ????????3)listen() 设置为监听模式 ????????4)accept() 接受客户端的连接? ????????5)recv/send() ????????6)close 三、相关的库函数 1、socket函数(创建socket,最大创建1024个)
????????1)domain:协议域? AF_INET——IPV4 ????????2)type:指定socket类型 SOCK_STREAM ????????3)protocol:指定协议 0 ? ? ? ? 4)返回值:成功返回一个socket,失败返回-1 二、主机字节序与网络字节序 ? ? ? ? 1)字节顺序 ????????是指占内存多余一个字节类型的数据再内存中的存放顺序,一个32位整数由4个字节组成。内存中存储这4个字节有两种方法:一种是将低序字节存储再起始地址,这成为小端字节序;另外一种方法是将高序字节存储再起始地址,这称为大端字节序。(内存增长从左到右) ? ? ? ? 2)网络字节序 ? ? ? ? TCP/IP中规定号的一种数据表示格式,与CPU、操作系统无关保证数据再不同主机之间传输时能够被正确解释(大端排序)。 ? ? ? ? 3)主机字节序 ? ? ? ? 与CPU设计有关与操作系统无关,不同体系结构的机器之间无法通信所以要转换成网络字节序。 ? ? ? ? 网络字节序与主机字节序之间的转换函数:htons(),ntohs(),htonl(),ntohl()。htons和ntohs完成16位无符号数的相互转换,hton和ntohl完成32位无符号数的相互转换。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:28:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |