| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> TCP IP地址和端口号设置 -> 正文阅读 |
|
[网络协议]TCP IP地址和端口号设置 |
1.大小端模式1. 大端模式:低地址存储高字节 2.网络传输统一使用大端模式作为网络字节序,而计算机大多数为小端模式 3.大小端转化函 ??????? uint16_t htons(uint16_t hostshort);? ? //主机字节序转化为网络字节序short类型 ????????uint32_t ntohl(uint32_t netlong);? ? ? ? //网络字节序转化为主机字节序 long 类型 ????????uint16_t ntohs(uint16_t netshort);? ? ??? //网络字节序转化为主机字节序short类型 2.地址转化函数?? ? ? ? 一般我们所用的如192.168.10.3这类IP地址是点分式十进制,在网络传输时需要转化为32位无符号整数 32位无符号整数转化点分式10进制函数 ?? 3.存储IP地址端口的结构体? ? ? ? 下面两个结构体可存储绑定socket的IP地址和端口号,一般使用第二个 1.struct sockaddr { 2.头文件:#include <netinet/in.h > struct sockaddr_in?{ struct in_addr{ ps:以上的结构体中存储的数据必须是网络字节序? 4.举例? ? ? ? 因此,一般绑定socket的地址设定如下
5.端口号? ? ? ?端口号说明 6.INADDR_ANY? ? ? ? 我们有时会遇到addrServer.sin_addr.s_addr = htonl(INADDR_ANY)这种定义,那么INADDR_ANY代表什么意思呢? ?????????INADDR_ANY转换过来就是0.0.0.0,泛指本机的意思,也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。 比如一台电脑有3块网卡,分别连接三个网络,那么这台电脑就有3个ip地址了,如果某个应用程序需要监听某个端口,那他要监听哪个网卡地址的端口呢? 如果绑定某个具体的ip地址,你只能监听你所设置的ip地址所在的网卡的端口,其它两块网卡无法监听端口,如果我需要三个网卡都监听,那就需要绑定3个ip,也就等于需要管理3个套接字进行数据交换,这样岂不是很繁琐? 所以出现INADDR_ANY,你只需绑定INADDR_ANY,管理一个套接字就行,不管数据是从哪个网卡过来的,只要是绑定的端口号过来的数据,都可以接收到。 |
|
网络协议 最新文章 |
使用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:24:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |