C++socket编程(三)3.2 创建TCPServer设置服务信息并讲解网络字节序
一:创建TCPserver
如下代码:
创建TCPserver设置服务信息代码如下
int sock = socket(AF_INET, SOCK_STREAM, 0);if (sock == -1){printf("create socket failed!\n");return -1;}unsigned short port = 8080;if (argc > 1){port = atoi(argv[1]);}//创建sockaddr_in saddr;saddr.sin_family = AF_INET; //TCP协议saddr.sin_port = htons(port); //本地字节序转换为网络字节序saddr.sin_addr.s_addr = htonl(0); //任意ip地址发过来的数据都接收
如上代码我们就初始化完成了scockaddr这个套接字结构体,包含了协议,基于网络字节序的端口号,和ip地址。
二:网络字节序讲解:
如上图所示:
大端模式:Big Endian
高位字节在前面,地位地址在后面。
小端模式:Little Endian
低位字节在前面,前面的意思是什么?就是前面的内存地址小一点。高位地址在后面。当我我们目前x86的系统都是采用小端模式。
如下例子想表示一个整型数字2
上图左侧表示前面。而且这是字节序不是二进制次序,单个字节不存在字节序转换的问题。
注意:网络字节序:全部采用大端方式。而我们的x86,windows等系统都是采用小段方式,所在程序中如果我们在创建连接时,要进行字节序转换。
C++socket编程(三)3.2 创建TCPServer设置服务信息并讲解网络字节序相关推荐
- 网络编程------IP地址,端口号,套接字,网络字节序
IP地址 IP地址是IP协议中,用来标识网络中的唯一一台主机的地址.IP协议有两个版本IPv4,IPv6.在IPv4中,IP地址是一个4字节的32位的整数.在IPv6中,IP地址是一个 ...
- 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client
1 Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...
- 网络字节序 —— 主机字节序 (Socket编程) 转
在对IP地址结构体SOCKADDR_IN赋值的时候,经常会用到下列的函数htonl,htons,inet_addr,与之相对应的函数是ntohl,ntohs,inet_ntoa.查看这些函数的解析,会 ...
- Socket编程:必须要了解的网络字节序和转换函数
目录 主机字节序和网络字节序 转换函数 htonl .htons .ntohl 和 ntohs inet_addr .inet_aton 和 inet_ntoa inet_pton 和 inet_nt ...
- 套接字编程--1(UDP协议编程,端口号,传输层协议,网络字节序)
传输层的协议: ip地址: 在网络中唯一标识一台主机 IPV4:uint32_t DHCP NAT IPV6 : uint8_t addr[16] -向前并不兼容IPV4 每一条数据都必须包含源地址和 ...
- 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)
此为牛客Linux C++课程和黑马Linux系统编程笔记. 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分. 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小 ...
- java 网络字节序转主机字节序_C语言高级编程——网络编程技术
了解什么是网络编程 熟悉七层网络模型 熟悉网络开发中使用到的函数 掌握TCP协议类程序开发 掌握UDP协议类程序开发 计算机本身是不会进行网络通信的,所以要想使通过软件进行网络通信,必须制定相应的规则 ...
- 网络编程-IP地址、端口号、网络字节序
IP地址.端口号.网络字节序 本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标 ...
- Linux网络编程(IP地址,端口,通信协议,网络字节序)
网络概念 局域网,城域网,广域网:根据覆盖范围进行的网络划分 互联网(因特网):国际性更大范围的广域网 以太网,令牌环网:组网方式 IP地址 IP地址,是用来标识网络中不同主机地址(每一台主机的唯一标 ...
最新文章
- tp5某个字段相同的数据只取一次_多维分析数据仓库建设建议-面向主题的建模...
- glance-50(秒解秒懂)
- python准备_python环境准备
- 百度数据挖掘研发工程师实习笔试面试
- python导入函数模块 为什么会打印两次_5.1.2Python从模块导入函数
- python项目“内存泄漏”的调试过程
- Ubuntu安装python3虚拟环境
- 保险公司在线签名 html5,html5手写签名
- Vue webapp项目通过HBulider打包原生APP
- 基于皮尔森相关系数的协同过滤算法
- 数据抽取常见的几种模式
- typescript入门练手小demo
- 干部身份、三方协议、派遣证(转)
- 当当网张亮:Sharding-JDBC 未来将更加多样化
- 电子邮件接受服务器的端口是,qq电子邮件服务器是什么?端口多少?安全类型是什么?路径前缀是什...
- 安卓苹果下载地址合并 苹果安卓专用二维码是如何生成的
- python字符串处理编程实例_Python字符串处理实例详解
- Mybatis核心配置文件
- C++中相对路径与绝对路径以及斜杠与反斜杠的区别
- android环信群聊显名称,Android环信群聊插入头像和昵称
热门文章
- 自定义地图开发(一)
- 黑马程序员--里氏转换
- hdu 1421 搬寝室 动态规划
- 浅谈三角带的使用及其分类
- [转载] 杜拉拉升职记——53 自由自在地活
- (转)页面滚动条(scrollbar)颜色设置详解
- OLTP v.s. OLAP
- flag push tcp 作用_TCP协议超详细解析及攻击/防范
- Java面向对象之object类自带的方法解析(equals与==、toString方法、instanceof方法、参数传递问题)
- mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别