当前位置: 首页 > news >正文

公司网站建设哪里好外包手工活在哪里拿货

公司网站建设哪里好,外包手工活在哪里拿货,网站怎么弄实名制认证,后期网站目录 1--IP地址和端口号 2--地址信息的表示 3--网络字节序与地址变换 4--网络地址的初始化与分配 5--Windows部分代码案例 1--IP地址和端口号 IP 地址分为两类#xff1a; ① IPv4 表示 4 字节地址族#xff1b; ② IPv6 表示 16 字节地址族#xff1b; IPv4 标准的 4 …目录 1--IP地址和端口号 2--地址信息的表示 3--网络字节序与地址变换 4--网络地址的初始化与分配 5--Windows部分代码案例 1--IP地址和端口号 IP 地址分为两类         ① IPv4 表示 4 字节地址族         ② IPv6 表示 16 字节地址族 IPv4 标准的 4 字节 IP 地址分为网络地址和主机地址一般分为 A、B、C、D和 E 类型         ① A类网络ID1字节主机ID3字节首字节范围0~127         ② B类网络ID2字节主机ID2字节首字节范围128~191         ③ C类网络ID3字节主机ID1字节首字节范围192~223         ④ D类网络ID4字节         ⑤ E类已被预约 端口号         端口号用于区分 Socket不同的应用程序不能将 1 个端口号分配给不同的 Socket         端口号由 16 位构成可分配的端口号范围是 0-65535其中 0-1023 是知名端口用于分配给特定的应用程序         TCP Socket 和 UDP Socket 不会共用端口号因此允许重复 2--地址信息的表示 表示 IPv4 地址的结构体 sockaddr_in struct sockaddr_in{sa_family_t sin_family; // 地址族uint16_t sin_port; // 16位 TCP/UDP 端口号struct in_addr sin_addr; // 32位IP地址char sin_zero[8]; // 不使用 } 成员 sin_family表示地址族常用的地址族如下         ① AF_INET 表示 IPv4 网络协议中使用的地址族         ② AF_INET6 表示 IPv6 网络协议中使用的地址族         ③ AF_LOCAL 表示本地通信中采用的 UNIX 的地址族 // 一般用法 SOCKADDR_IN servAddr; servAddr.sin_family AF_INET; bind() 函数第二个参数期望获得 sockaddr 结构体类型其定义如下 struct sockaddr{sa_family_t sin_family; // 地址族char sa_data[14]; // 地址信息包含IP地址和端口号其它部分填充为0 }         一般需要将 sockadd_in 结构体强制转换为 sockaddr 结构体变量将输入到 bind() 函数中         bind(serv_sock, (struct sockaddr*) serv_addr, sizeof(serv_addr)); 其中 serv_addr 是sockadd_in结构体变量 3--网络字节序与地址变换 CPU向内存保存数据的方式有两种         ① 大端序高位字节存放到低位地址         ② 小端序高位字节存放到高位地址         在通过网络传输数据时约定采用统一的网络字节序方式即统一为大端序先把数据数组转化成网络字节序大端序再进行传输接收方收到数据后将网络字节序解析为符合自己CPU的数据方式 // 字节序转换 unsigned short htons(unsigned short); // 主机字节序转换为网络字节序 unsigned short ntohs(unsigned short); // 网络字节序转换为主机字节序 unsigned long htonl(unsigned short); // 主机字节序转换为网络字节序 unsigned long ntohl(unsigned short); // 网络字节序转换为主机字节序 h 表示主机host字节序n 表示网络network字节序s 表示 shortlinux 中 short 类型占用 2 字节l 表示 longlinux 中 long 类型占用 4 字节 4--网络地址的初始化与分配 inet_addr() 函数会将字符串形式的 IP 地址转换为 32 位整数型数据并在转换类型的同时完成网络字节序的转换         inet_addr() 函数还可以检测无效的 IP 地址 // inet_addr.c // gcc inet_addr.c -o inet_addr // ./inet_addr#include stdio.h #include arpa/inet.hint main(int argc, char *argv[]){char *arrd1 1.2.3.4; char *arrd2 1.2.3.256;unsigned long conv_addr inet_addr(arrd1);if(conv_addr INADDR_NONE){printf(Error occured \n);}else{printf(Network ordered integer addr: %#lx \n, conv_addr);}conv_addr inet_addr(arrd2);if(conv_addr INADDR_NONE){printf(Error occured \n);}else{printf(Network ordered integer addr: %#lx \n, conv_addr);}return 0; } inet_aton() 函数的功能与 inet_addr() 相同但其在调用过程中会将转换后的 IP 地址信息代入到 sockaddr_in 结构体中因此使用频率更高 // inet_aton.c // gcc inet_aton.c -o inet_aton // ./inet_aton#include stdio.h #include stdlib.h #include arpa/inet.hvoid error_handling(char *message){fputs(message, stderr);fputc(\n, stderr);exit(1); }int main(int argc, char *argv[]){char *addr 127.232.124.79;struct sockaddr_in addr_inet;if(!inet_aton(addr, addr_inet.sin_addr)){error_handling(Conversion error);}else{printf(Network ordered integer addr: %#x \n, addr_inet.sin_addr.s_addr);}return 0; }inet_ntoa() 函数与上述两个函数的功能相反其将网络字节序整数型 IP 地址转换为字符串形式         调用 inet_ntoa() 函数后需要存储对应的字符串信息否则下次被调用会被覆盖 // 网络地址的初始化 struct sockaddr_in addr; char* serv_ip 211.217.168.13; // 声明 IP 地址字符串 char* serv_port 9190; // 声明端口号字符串 memset(addr, 0, sizeof(addr)); // 结构体变量 addr 的所有成员初始化为 0 addr.sin_family AF_INET; // 指定地址族 addr.sin_addr.s_addr inet_addr(serv_ip); // 基于字符串的 IP 地址初始化 addr.sin_port htons(atoi(serv_port)); // 基于字符串的端口号初始化 5--Windows部分代码案例 // gcc endian_conv_win.c -o endian_conv_win -lwsock32 // endian_conv_win#include stdio.h #include winsock.hvoid ErrorHandling(char* message){fputs(message, stderr);fputc(\n, stderr);exit(1); }int main(int argc, char *argv[]){WSADATA wsaData;unsigned short host_port 0x1234;unsigned short net_port;unsigned long host_addr 0x12345678;unsigned long net_addr;if(WSAStartup(MAKEWORD(2, 2), wsaData) ! 0){ErrorHandling(WSAStartup() error!);}net_port htons(host_port);net_addr htonl(host_addr);printf(Host ordered port: %#x \n, host_port);printf(Network ordered port: %#x \n, net_port);printf(Host ordered address: %#lx \n, host_addr);printf(Network ordered address: %#lx \n, net_addr);WSACleanup();return 0; } // gcc inet_adrconv_win.c -o inet_adrconv_win -lwsock32 // inet_adrconv_win#include stdio.h #include string.h #include winsock2.hvoid ErrorHandling(char* message){fputs(message, stderr);fputc(\n, stderr);exit(1); }int main(int argc, char *argv[]){WSADATA wsaData;if(WSAStartup(MAKEWORD(2, 2), wsaData) ! 0){ErrorHandling(WSAStartup() error!);}// inet_addr 函数调用示例{char *addr 127.212.124.78;unsigned long conv_addr inet_addr(addr);if(conv_addr INADDR_NONE){printf(Error occured! \n);}else{printf(Network ordered integer addr: %xlx \n, conv_addr);}}// inet_ntoa 函数调用示例{struct sockaddr_in addr;char *strPtr;char strArr[20];addr.sin_addr.s_addr htonl(0x1020304);strPtr inet_ntoa(addr.sin_addr);strcpy(strArr, strPtr);printf(Dotted-Decimal notation3 %s \n, strArr);}WSACleanup();return 0;}
http://www.sadfv.cn/news/214735/

相关文章:

  • 网站欢迎界面设计运城市住房与城乡建设厅网站
  • 做头像的网站空白中国网站建设
  • 十堰网站推广查看网站建设工作
  • 网站初期推广淘宝客优惠券网站建设加盟官网
  • 安徽省建设工程安全+协会网站便利店网站建设拓扑图
  • js网站开发教程wordpress多人聊天室
  • 阿里云无主体新增网站天津网站建设电话
  • 各个视频网站怎么做原创作者手机网站方案
  • 导航网站html模板网络推广怎么免费做
  • 图片搜集网站怎么做百度拍照搜题
  • 北京南站到北京站坐地铁几号线悦西安
  • 用什么软件做网站最简单 最方便google浏览器官方下载
  • 食品网站建设方案项目书天元建设集团有限公司的商业承兑
  • 大连市平台网站自己做网站需要什么材料
  • 网站备案 暂住证医药行业网站建设
  • 做网站的入什么科目wordpress 七牛图床
  • 网站在谷歌怎么做排名网站系统修改不了怎么回事
  • 商标查询官方网站wordpress修改登陆
  • 中国建设银行 网站登录如果建网站
  • 网站上传后怎么访问设计方案格式模板
  • 防蜘蛛抓取网站代码定制型网站
  • 我的小程序入口seo网络推广费用
  • 大型网站有哪些用php做的做网站后台需要什么
  • 电子商务网站建设 试题网站超链接怎么做 word
  • 企业速成网站免费的ppt网站
  • 广告网站建设及推广thinkphp手机网站开发
  • 护肤品网站建站模板广州百度关键词排名
  • 广州外贸网站建设公司价格网站怎样建设友情链接
  • 张启亚学做网站layui 网站建设模板
  • 网站建设的基本步骤和过程无法连接到wordpress站点