zoukankan      html  css  js  c++  java
  • 网络序和字节序转换源码

    1 #define HTONL(n) (((((unsigned long)(n) & 0xFF)) << 24) |  ((((unsigned long)(n) & 0xFF00)) << 8) | ((((unsigned long)(n) & 0xFF0000)) >> 8) | ((((unsigned long)(n) & 0xFF000000)) >> 24))
    2 #define HTONS(n) (((unsigned short(n) & 0xFF)) << 8)) |(((unsigned short(n) & 0xFF00) >> 8))
    #pragma comment(lib,"ws2_32.lib")
    #include <stdio.h>
    #include <winsock2.h>
    #include <iostream>
    using namespace std;
    #define HTONL(n) (((((unsigned long)(n) & 0xFF)) << 24) |  ((((unsigned long)(n) & 0xFF00)) << 8) | ((((unsigned long)(n) & 0xFF0000)) >> 8) | ((((unsigned long)(n) & 0xFF000000)) >> 24))
    #define HTONS(n) (((unsigned short(n) & 0xFF)) << 8)) |(((unsigned short(n) & 0xFF00) >> 8))
    
    
    void ErrorHandling(char* message)
    {
        fputs(message,stderr);
        fputc('
    ',stderr);
        exit(1);
    }
    int main()
    {
        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 
    ", host_port);
        printf("Network ordered port: %#x 
    ", net_port);
        printf("Host ordered address: %#lx 
    ", host_addr);
        printf("Network ordered address: %#lx 
    ", net_addr);
        WSACleanup();//关闭库
        system("pause");
        return 0;
    }

  • 相关阅读:
    51nod贪心算法入门-----完美字符串
    HDU6030----矩阵快速幂
    O(n)求1~n的逆元
    (四)添加签到奖励功能
    (三)开始在OJ上添加签到功能
    (二)OJ的主要文件
    (一)在linux上ubuntu搭建hustOJ系统
    CF 148A Insomnia cure
    lower_bound和upper_bound
    C++ string的常用功能
  • 原文地址:https://www.cnblogs.com/Jawen/p/11670498.html
Copyright © 2011-2022 走看看