1. 程式人生 > >網路程式設計第一篇:IP地址結構sin_addr的定義解析。

網路程式設計第一篇:IP地址結構sin_addr的定義解析。

IP地址結構:

   struct   in_addr {

                     union {

                            struct {

                                        unsigned  char s_b1,

                                                                s_b2,

                                                                s_b3,

                                                                s_b4;

                            } S_un_b;

                            struct {

                                        unsigned short s_w1,

                                                                 s_w2;

                            } S_un_w;

                            unsigend long S_addr;

                      }S_un;

                };

以上所指出的IP地址為IPV4,長度為32bit.unsigned char 為8bit,unsigned short 為16bit,unsigned long 為32bit.如果要表示一個IP地址:10.14.25.90依據上面的結構體,可以有3種不同的方式:假設定義結構體 in_addr sin_addr;

1.sin_addr.S_un.S_un_b.s_b1 = 10;  

       sin_addr.S_un.S_un_b.s_b1 = 14;

       sin_addr.S_un.S_un_b.s_b1 = 25;

       sin_addr.S_un.S_un_b.s_b1 = 90;

2.sin_addr.S_un.Sun_w.s_w1 = (14<<8)|10;

        sin_addr.S_un.Sun_w.s_w2 = (90<<8)|25;

3.sin_addr.S_un.S_addr = (90<<24)|(25<<16)|(14<<8)|10;

相關推薦

網路程式設計第一IP地址結構sin_addr定義解析

IP地址結構:    struct   in_addr {                      union {                             struct {                                         un

12學通C#網路程式設計——第一 基礎之程序執行緒

   在C#的網路程式設計中,程序和執行緒是必備的基礎知識,同時也是一個重點,所以我們要好好的掌握一下。 一:概念           首先我們要知道什麼是”程序”,什麼是“執行緒”,好,查一下baike。   程序:是一個具有一定獨立功能的程式關於某個資料集合的一次

基於UNIX的網路程式設計(理論設計迭代伺服器)

注意:read的返回值為0說明讀的位元組數,如果為EOF則為0. 之前騰訊一面的時候,面試官看見了我的最近一篇部落格《TCP和UDP詳解》感覺我的理論還行。但是,問我有沒實際做過TCP/UDP的專案。結果我就只能說我在大一做過的一個沒有搭在伺服器上面的下載

腦殘式網路程式設計入門(六)什麼是公網IP和內網IP?NAT轉換又是什麼鬼?

本文引用了“帥地”發表於公眾號苦逼的碼農的技術分享。 1、引言 搞網路通訊應用開發的程式設計師,可能會經常聽到外網IP(即網際網路IP地址)和內網IP(即區域網IP地址),但他們的區別是什麼?又有什麼關係呢?另外,內行都知道,提到外網IP和內網IP就不得不提NAT路由轉換這種東西,那這雙是什

網路通訊過程--解析IP地址, 埠port,,DNS伺服器,MAC地址,預設閘道器,通訊過程圖解(理解型)

IP地址: 用來在網路中標記一臺電腦,指引資料包的收發方向,在一個區域網中是唯一的;電腦中的ip是可以手動修改的,只要在同一個區域網中不重複即可。 分類: ①ip地址的組成,包括網路地址和主機地址

java資料結構與之二叉樹相關實現(第一遍歷)

一、基本概念 每個結點最多有兩棵子樹,左子樹和右子樹,次序不可以顛倒。 性質: 非空二叉樹的第n層上至多有2^(n-1)個元素。 深度為h的二叉樹至多有2^h-1個結點。 滿二叉樹:所有終端都在同一層次,且非終端結點的度數為2。 在滿二叉

第一面向物件程式設計基礎(上)

面向物件程式設計(Object Oriented Programming),簡稱OOP。是java程式設計的核心,也是java web應用開發的核心。主要有三個概念:封裝,繼承,和多型。 簡要闡述下三個概念:1、封裝:封裝是OOP語言的優點之一。把一個物件的資

U3D_Shader程式設計第一快速入門

《U3D_Shader程式設計》##《U3D_Shader程式設計》釋出說明:++++Shader一個高大上的領域,不管怎麼樣,我來了。++++立鑽哥哥從2018年開始正式對Shader進行戰略佈局。++++《U3D_Shader程式設計》將從零開始,循序漸進探索,還是先探索

資料加密 第一加密的分層結構

加密是通過使用金鑰或密碼來混淆資料的處理過程,把明文處理為密文,如果沒有拿到相應的解密金鑰或密碼,即使拿到密文,也是無用,因此加密是保護資料的一個方法。使用者只有拿到金鑰和證書把密文資料解密之後,才能使用資料。如果沒有金鑰和證書,即使得到了資料,也無法得知資料的原始值,資料就沒有價值了。由於資料的加密和解密是

第一linux系統應用管理之用戶的切換

修改用戶、用戶切換、添加普通用戶、系統應用管理管理Linux系統運維之前,先來查看一下當前Linux系統的版本、內核等信息。命令如下:[[email protected]/* */ ~]# cat /etc/redhat-release CentOS release 6.8 (Final)

CodeIgniter 入門教程第一信息發布

per 所有 控制 知識點 image doc ref har 提交 一、MVC CodeIgniter 采用MVC架構即:控制層、模型層和視圖層。 對應Application下面的文件夾 (圖1): 所有新建文件以.php結尾 視圖層

第一查閱數據

如何使用 str 打印 chl sof 表示 cnblogs 命令 numeric 前言 本文講解如何使用 R 語言對數據集進行總體上的了解。 在進行數據挖掘之前,我們有必要對挖掘的數據集對象有一個總體的了解。本文采用具體實例講解的方式,詳細

第一你不一定了解的"推薦系統"

auto 目錄 主動 類目 好友 mage 放棄 百度 博文 前言 [推薦系統 - 基礎教程]可能是穆晨的所有博文裏,最有趣最好玩的一個系列了^ ^。 作為該系列的[入門篇],本文將輕松愉快地向讀者介紹推薦系統這項大數據領域中的熱門技術。

Linux實戰第一Centos6.9/RHEL6.9詳細安裝攻略(LVM)

linux個人筆記分享(在線閱讀):http://note.youdao.com/noteshare?id=bb2ad6216bff8cddaa3e360c76392c9b PDF版本下載http://down.51cto.com/data/2321269本文出自 “人才雞雞” 博客,請務必保留此出處http

第一白話tornado源碼之一個腳本引發的血案

之間 監聽 start 部分 soc 一場 cal client 創建服務 本系列博文計劃:   1、剖析基於Python的Web框架Tornado的源碼   2、為Python開發一個完善的MVC框架     首先將帶著大家一起來剖析基於python編寫的Web

第一Spark SQL源碼分析之核心流程

example 協議 bst copyto name 分詞 oop 不同 spl /** Spark SQL源碼分析系列文章*/ 自從去年Spark Submit 2013 Michael Armbrust分享了他的Catalyst,到至今1年多了,Spark SQ

自學運維第一Linux虛擬機基礎優化

linux虛擬機 基礎優化Linux虛擬機基礎優化1.系統環境查看命令cat /etc/redhat-release uname -runame -m說明:系統環境CentOS release 6.5 (Final) 2.6.32-431.el6.x86_642.關閉SELinux功能命令cat /etc/

第一Tomcat介紹、安裝、配置

分享圖片 訪問網站 esp ext .tar.gz resp less a20 關閉防火墻 一、Tomcat介紹 Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,有Apache 、Sun和其

Shell實戰第一自動批量創建用戶並配置保存自定義密碼

shell個人筆記分享(在線閱讀):http://note.youdao.com/noteshare?id=c4ee31bdcef0d28ec525bed113c93763&sub=CFE5180F8455421E9D5252FEC98AB1EDShell實戰第一篇:自動批量創建用戶並配置保存自定義密碼

Matlab高級教程_第一Matlab基礎知識提煉_04

訪問 str val 函數句柄 8.4 body tro mat AI 第八節:幾大MATLAB的數據類型 8.1 數值型 8.2 字符和字符串 創建用‘ ‘ 8.3 函數句柄 8.4 結構體 創建用. 語法:struct(‘field‘, var1,‘field2‘,