#千锋逆战班,计算机网络#

********************************命运从不偏袒任何人**********************************

却会垂怜认真生活的人,对未来的真正慷慨,是把一切献给现在,总有一天,你会惊艳时光

****************************即无人能替,又光芒万丈******************************

今天是在千锋逆战班学习计算机网络的第二天,学习了字节序的转换、点分十进制字符串和网络大端数据的转换、udp的简单编程,下面分享一下今天的学习

1、字节序

一般我们个人的电脑默认都是小端存储的,一些大的服务器和网络上的数据都是大端存储的,如果我们要发送数据到网络上就需要考虑到大小端的转换,转换我们需要用到的函数有如下几种:

(1) htonl函数

uint32_t htonl(uint32_t hostint32);

功能:

将32位主机字节序数据转换成网络字节序数据

参数:

hostint32:待转换的32位主机字节序数据

返回值:

成功:返回网络字节序的值

头文件:

#include <arpa/inet.h>

(2) htons函数

uint16_t htons(uint16_t hostint16);

功能:

将16位主机字节序数据转换成网络字节序数据

参数:

uint16_t:unsigned short int

hostint16:待转换的16位主机字节序数据

返回值:

成功:返回网络字节序的值

头文件:

#include <arpa/inet.h>

(3)ntohl函数

uint32_t ntohl(uint32_t netint32);

功能:

将32位网络字节序数据转换成主机字节序数据

参数:

uint32_t: unsigned int

netint32:待转换的32位网络字节序数据

返回值:

成功:返回主机字节序的值

头文件:

#include <arpa/inet.h>

(4) ntohs函数

uint16_t ntohs(uint16_t netint16);

功能:

将16位网络字节序数据转换成主机字节序数据

参数:

uint16_t: unsigned short int

netint16:待转换的16位网络字节序数据

返回值:

成功:返回主机字节序的值

头文件:

#include <arpa/inet.h>

2、点分十进制字符串和网络大端数据的转换

转换函数有:

(1)#include <arpa/inet.h>

int inet_pton(int af, const char *src, void *dst);

功能:

将一个点分十进串转为32位的大端数据

参数:

af: 协议 AF_INET (ipv4)

src: 待转的点分十进制串

dst: 保存32位大端数据的地址

返回值:

成功返回1 0 和-1 都是失败

(2)#include <arpa/inet.h>

const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);

函数功能:

将网络4字节的大端数据转为点分十进制串

参数:

af: 协议 AF_INET (ipv4)

src: 待转的32位大端数据

dst:保存点分十进制串的地址

size:dst指向那块空间的大小

成功:则返回字符串的首地址

失败:返回NULL

3、udp的简单编程

udp编程,我们需要用到套接字socket,socket的作用是提供不同主机上的进程之间的通信

下面提供一个简单案例

socket 收不到16进制 数据_UDP编程-套接字(socket)相关推荐

  1. linux socket接收不到16进制数据,C下通过socket收发十六进制数据解决办法

    C下通过socket收发十六进制数据 系统是在LINUX下,下位机发送十六进制数据过来 上位机怎么解析 把数据以十六进制的形式显示出来,发送十六进制又如何实现 ------解决方案---------- ...

  2. php接收16进制数据,PHP_PHP 通过Socket收发十六进制数据的实现代码,最近在php下做关于Socket通讯的 - phpStudy...

    $sendStr = '30 32 30 34 03 30 33';  // 16进制数据 $sendStrArray = str_split(str_replace(' ', '', $sendSt ...

  3. python socket发送16进制数据_python socket以16进制的数据进行传递与解析

    参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...

  4. java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据

    做个笔记,在接收16进制数据的时候乱码了.原因是Socket在接收数据的时候需要根据不同的数据定义不同的接收方式,也就是约定好传输协议(具体体现在后面服务端接收16进制那里). 字符串的发送接收 字符 ...

  5. python socket发送16进制数据_Python UDP Socket 16进制数据发送

    注:此篇文章首次发表于我的一篇CSDN博客里边,现转载于此. 今天琢磨了一下Python UDP Socket 16进制数据发送. 原以为UDP发送和接受的都是字符,怎么能够发送16进制?但细想,其实 ...

  6. python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例

    Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...

  7. [工具]-C语言中字符串的形式打印16进制数据

    C语言中字符串的形式打印16进制数据. 这样写,输出更直观些 #define PRINT_BUF_MAX (32) #define TAG_STRING_MAX (32) static void pr ...

  8. java串口发送16进制数据_MFC串口通信发送16进制数据的方法

    本文实例为大家分享了MFC串口通信发送16进制数据的具体代码,供大家参考,具体内容如下 MFC串口通信会使用m_mscomm控件. 发送数据一般是在edit control 里输入自己想发送的内容,然 ...

  9. python 输出\xhh格式的16进制数据(改2)

    温馨提示:标题解决方案请浏览后面部分,傻吊网友请按顺序浏览 启蒙(转载)自:https://blog.csdn.net/dengzhaoqun/article/details/8923259 顺带st ...

最新文章

  1. UVA 11383 Golden Tiger Claw 金虎爪(KM算法)
  2. UNCTF2020 | Web Wp
  3. [linux] shell脚本编程-统计日志文件中的设备号发通知邮件
  4. C语言学习及应用笔记之六:C语言extern关键字及其使用
  5. C++学习笔记-类定义的注意事项和C#的区别
  6. android 下载视频文件怎么打开,安卓手机支付宝文件夹下的视频文件是什么
  7. 计算工资底薪加提成的java_月工资如何计算我是做服务行业,底薪2200全勤100加提成5 - 找法网(findlaw.cn)...
  8. leetcode第一刷_Count and Say
  9. 寿光农商行计算机机房,寿光农村商业银行:新系统上线前奏——培训
  10. Python爬虫 | Selenium爬取当当畅销图书排行
  11. JAVA一个汉字占多少字节,一个字母占多少字节
  12. 小白如何从零开始运营微信公众号?
  13. 狂神Springboot笔记
  14. Mac 编译 llvm / mlir
  15. ORACLE EBS常用表及查询语句(二)
  16. android开发——RecycleView
  17. 巧用千寻位置GNSS软件|逐点放样应用技巧
  18. 用python实现过滤存在大部分空白背景的图片
  19. OpenCV实践小项目(二) -文档ocr扫描识别
  20. 移远BC35-G模组通过LWM2M协议接入OneNet教程

热门文章

  1. 语言 高速公路超速处罚_880关注 拆除!高速公路不合理限速标志!
  2. c语言 函数 收集,c语言库函数大全--资料收集+
  3. [Unity脚本运行时更新]C#4新特性
  4. OpenShift 4.6 新特性 - 用 Windows MachineConfig Operator 管理 Windows Container
  5. SonarQube 8.4 发布,分析时间最多可减少 80%
  6. C#中具有进程间通信的Singleton应用程序
  7. 人工生命 2.0.2 更新,模拟体全息存贮的模式识别
  8. Visual Studio 2019 16.3 Preview 3 发布,使用 IntelliCode 重构更容易
  9. 实时 Git,在版本控制之前控制源码
  10. TypeScript 官方决定全面采用 ESLint