| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> socket网络编程 -> 正文阅读 |
|
[网络协议]socket网络编程 |
网络编程tcp协议面向连接(字节流),全双工可靠信道,只能点到点 udp协议面向报文,不可靠,支持多对多 端口号作用:通过端口号区分同一主机多个服务 ftp服务器tcp端口号都是21,Telnet服务器tcp端口号23,TFTP(简单文件传输协议)服务器udp端口号69 字节序字节序:多字节数据在计算机内存中存储或网络传输时各字节存储顺序 little endian小端字节序:将低序字节存储在起始地址 big endian大端字节序:将高序字节存储在起始地址 网络字节序=大端字节序 socket编程起步 套接字(socket)是网络中不同主机上的应用进程之间进行双向通信的端点的抽象。 socket服务器和客户端开发步骤
Linux提供的apiint socket(int domain,int type,int protocol) doman:一般为AF_INET(ipv4因特网域)AF_INET6 (ipv6) type:SOCKET_STREAM(tcp协议) SOCKET_DGRAM(udp) protpcol:0 根据前两个参数自动选择传输协议 bind(int socketfd, socketaddr *addr, sizeof(sockaddr_in)) 1:套接字描述符 2:结构体指针 struct socket_in { sa_family_t sin_family; //协议族 in_port_t sin_port; //端口号(低于3000是操作系统使用的,用户用5000-9000) struct in_addr sin_addr; //ip地址结构体 unsigned char sin_zero[8]; //填充,没有实际意义,只为和socketaddr结构在内存中对齐,这样两者才能互换 } 地址转换api htons(8988) 主机字节顺序转变成网络字节顺序 int inet_aton(const char* staddr, struct in_addr *addrp) 功能是将一个字符串IP地址转换为一个32位的网络序列IP地址。 char *inet_ntoa(struct in_addr inaddr) 将网络ip地址转化为字符串形式 监听 listen(int sockfd, int backlog) 2:请求队列中最大长度 连接 accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) 2:用来返回已连接的客户端的协议地址 3:客户端地址长度 数据收发 read(),write() send(),recv() 客户端的connect函数 int connect(int sockfd, const struct aockaddr *addr, socklen_t addrlen) 2:服务器端ip地址和端口号的地址结构指针 3:地址长度常被设为sizeof(struct sockaddr) cd /usr/include greap “struct sockaddr_in {”??*-nir n显示行号 i不区分大小写 r递归查找 vi linux/in.h +184 打开到184行 man 2 connect 补全的代码 vi ?~/.vim/snippets/c.snippets 71行是一个折叠的代码,zo打开加号,tab #include<stdio.h> |
|
网络协议 最新文章 |
使用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/26 1:45:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |