| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【网络篇】套接字编程 -> 正文阅读 |
|
[系统运维]【网络篇】套接字编程 |
1、前提知识铺垫1.1 认识端口—port
1.2 网络数据的五元组信息
1.3 网络字节序??字节序又称为端序或者尾序。指的是多字节数据在内存中存放的顺序。
如何判断自己的机器遵守的是哪一种存储规则? 方式一:指针+变量+强制类型转换验证 主机字节序:指的是机器本身的字节序,如果是大端,则主机字节序为大端,如果是小端,则主机字节序为小端 网络字节序:规定网络传输数据的时候采用大端字节序进行传输 1.4 主机字节序与网络字节序的相互转换既然网络字节序是大端字节序,现在假设有AB两台主机,他们之间需要通过网络进行通信,我们分析A向B发送消息这一单程。 A向B发送的数据,通过网络传输时一定要转换为网络字节序,否则传输的数据可能会出错(这取决于主机A是大端还是小端机器) B从网络中接收A发送的数据时,也需要将数据从网络字节序转换为B主机的主机字节序 这个具体的转换过程并不需要我们自己实现,OS为我们提供了转换的接口 1.5 TCP协议与UDP协议的特性和区别UDP: 2、UDP_socket编程2.1 编程流程
图示: 2.2 编程接口2.2.1 创建套接字
参数: 2.2.2 绑定接口
参数: 注意:这里的 struct sockaddr是一个通用的数据结构!结构如下: 2.2.3 发送接口
参数: 2.2.4 接收接口
参数: 2.2.5 关闭接口
2.3 编程代码
3、TCP_socket编程3.1 编程流程
图示: 3.2 编程接口(较UDP编程新增的接口)3.2.1 监听接口
参数 3.2.2 获取新连接
3.2.3 发起连接
3.2.4 收发数据接收数据:
发送数据
3.3 编程代码期望完成的功能:服务端和多个客户端之间能够正常的通信! 3.3.1 TCP_demo服务端主要代码: 基于这种情况,我们需要找到一种方法,能够同时让多个客户端都享受服务。 下面分别介绍TCP 与多进程和多线程结合的代码 3.3.2 TCP + 多进程首先,对于客户端的代码而言,不需要做出任何的改动!因为客户端只需要一直和服务端进行通信即可! 主要的更改是在服务端,我们通过创建子进程的方式来实现职责的分离,也就是父进程只负责与客户端建立连接,而子进程负责与客户端进行收发消息。 具体代码参考 TCP_process服务端 3.3.3 TCP + 多线程
以上就是关于socket编程的相关总结~感觉有所帮助的友友们欢迎评论转发!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 15:07:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |