别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述socket编程相关的知识,希望能为你提供帮助。
一、网络套接字
1.什么是socket:网络通信的函数接口,在里面封装了传输层协议(tcp,udp)。
2.在通信过程中,套接字一定是成对出现的。一个文件描述符指向一个套接字,套接字内部借助两个缓冲区实现,一端的发送缓冲区对应另一端的接受缓冲区。
二、网络字节序
1.小端法:高位存高地址,低位存低地址
2.大端法:高位存低地址,低位存高地址
如何判断是大端存储还是小端存储请看前期博客
3.TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节。所以为了网络程序的可移植性,使得代码在大端和小端计算机上编译后都能够正常运行,通常要调用相关的库函数完成网络字节序和主机字节序的转换。如果主机是小端字节序,这些函数将参数做出相应的大小端转换然后返回,如果主机是大端字节序,这些函数不做转换,将参数原封不动地返回。
#include <
arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
uint16_t htona(uint16_t hostshort);
uint32_t ntohl(unit32_t netlong);
uint16_t ntoha(unit16_t netshort);
h表示host,n表示network,l表示32位长整数,s表示16位短整数
htonl 是将本地转网络(ip)
htons是将本地转网络(port)
ntoh1是将网络转本地(ip)
【socket编程】ntohs是将网络转本地(port)
推荐阅读
- #yyds干货盘点# MySQL - 存储引擎
- 如何做一个微信答题小程序
- [OpenCV实战]31 使用OpenCV将一个三角形仿射变换到另一个三角形
- Flutter 专题108 图解 PageView 滑动页面预览小尝试 #yyds干货盘点#
- #yyds干货盘点# 解决剑指offer(二叉搜索树与双向链表)
- 初识C++ 函数重载以及背后的原理
- 前端(react)上传到阿里云OSS存储 实例
- 华为路由与交换综合实验案例详解 纯干货分享
- win10系统hosts文件不见了怎样办?