Unix網路程式設計學習筆記課後題(Chapter 4)
4.1 如何辨別<netinet/in.h>
中定義的INADDR_
是主機序還是網路序。
less /usr/include/netinet/in.h
可以發現是按小端序儲存的,Linux的主機序就是小端序。
還有個想法,可以用htonl()去轉換,看結果是不是相等。
4.2
在connect呼叫返回成功後呼叫getsockname檢視本地地址和埠號
len=sizeof(cliaddr);
Getsockname(sockfd, (SA*)&cliaddr,&len);
printf("local addr: %s, port: %d\n",
Sock_ntop ((SA*)&cliaddr,len));
4.3
[email protected]:~/unp/unpv13e/intro$ ./daytimetcpsrv1
accept error: Invalid argument
4.4
沒有bind,會隨機為listenfd賦予一個臨時埠,cli不能連線到srv
相關推薦
Unix網路程式設計學習筆記課後題(Chapter 4)
4.1 如何辨別<netinet/in.h>中定義的INADDR_是主機序還是網路序。 less /usr/include/netinet/in.h 可以發現是按小端序儲存的,Linux的主機序就是小端序。 還有個想法,可以用htonl()去轉換,看結果是不是相等。
Unix網路程式設計學習筆記課後題(Chapter 6)
6.1 在/usr/include/x86_64-linux-gnu/sys/select.h中檢視fd_set的定義 /* fd_set for select and pselect. */ typedef struct { /* XPG4.2 requires this
Unix網路程式設計學習筆記課後題(Chapter 3)
3.1 因為不同型別的套接字長度不同。IPV4和IPV6套接字長度固定,但Unix域結構和資料鏈路結構是可變長度的,需要一個引數記錄結果的大小,直接傳就是值傳遞了,需要傳一個指標,以實現引用傳遞。 3.2 void指標只能用來傳引數,不能對void型別指標加減和解引用 3.3 匆匆忙
unix網路程式設計 學習筆記(精華)
3. 伺服器和客戶機的資訊函式 這一章我們來學習轉換和網路方面的資訊函式. 3.1 位元組轉換函式 在網路上面有著許多型別的機器,這些機器在表示資料的位元組順序是不同的, 比如i386晶片是低位元組在記憶體地址的低端,高位元組在高階,而alpha晶片卻相反. 為了統一起來,在unix下面,有專門
UNIX網路程式設計學習筆記(Racoon)
最近學習了UNIX網路程式設計卷I這本書,現在做一些學習筆記供分享與回顧。 本篇主要聚焦於傳輸層,包括TCP,UDP和SCTP(stream Control Transmission Protocol,流控制傳輸協議)。絕大部分CS網路應用使用的是TCp或者U
linux網路程式設計學習筆記(一)
目錄 1. 獲取系統呼叫錯誤資訊:errno strerror() perror(); 他跟c語言中的fopen()有什麼區別呢? 他也呼叫的是這個open(); 2.常規檔案操作之建立、讀、寫
Linux網路程式設計學習筆記(7)---5種I/O模型及select輪詢
本文主要介紹5種I/O模型,select函式以及利用select實現C/S模型。 1、5種I/O模型 (1)阻塞I/O: 一直等到資料到來,才會將資料從核心中拷貝到使用者空間中。 (2)非阻塞I/O: 每過一段時
網路程式設計學習筆記(九)套接字的多種可選項
套接字多種可選項 我們之前寫的程式都是建立好套接字後(未經特別操作)直接使用的,此時通過預設的套接字特性進行資料通訊。之前的示例較為簡單,無需特別操作套接字特性,但有時的確需要更改。 協議層 選項名 讀取 設定 SOL_SOC
Unix網路程式設計讀書筆記(三)
這一章正式開始網路程式設計的內容,先將書中的示例編寫如下: 首先是伺服器端: #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include &l
Python之網路程式設計學習筆記
一、TCP-IP協議 1、TCP/IP協議包含幾個層 如果按照四個層進行劃分: &
【 專欄 】- Java NIO 與 Netty 網路程式設計學習筆記
Java NIO 與 Netty 網路程式設計學習筆記 以一個IM聊天功能的實現。記錄筆者從最原始的阻塞IO(BIO)到JDK1.4提供的非阻塞IO,再到JDK 1.7 非同步IO的學習筆記,最後到Netty框架的學習筆記。
TCP/IP網路程式設計 學習筆記_15 --多播與廣播
轉自:http://blog.csdn.net/u010223072/article/details/48269213 前言:想想這麼一種情況,網路電臺可能需要同時向成千上萬的使用者傳輸相同的資料,如果用我們以前講過的傳輸形式,每個使用者都傳輸一次,這樣肯定是不合理的
UNIX環境程式設計學習筆記------程式設計例項-----對於 函式 inet_ntop()函式的第四個引數的理解
對於 函式 inet_ntop()函式的第四個引數的理解 1.函式原型:#include <arpa/inet.h> const char *inet_ntop(int af, const void *src,char *dst, socklen
java網路程式設計學習筆記 流式套接字程式設計
tcp是Transmission Control Protocol即傳輸控制協議,是一種面性連線的協議。 在java中使用tcp程式設計需要用到兩個類 1.ServerSocket(代表伺服器) 2.Socket(代表客戶端) 伺服器端程式碼: //伺服器端在埠8888監聽 Serve
unix網路程式設計之根據主機名(hostname)或網絡卡名獲取IP地址(三種方法)
#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/
TCP/IP網路程式設計 學習筆記_13 --基於I/O複用的服務端
前言:前面我們講了多程序的併發服務端,只要有客服端連線請求就會建立新程序,這雖然也是一種解決方案,但建立程序是需要付出極大代價的,這需要大量運算和記憶體空間,而且每個程序間具有獨立的記憶體空間,所以相互間的資料交換也相對複雜(管道)。 本章將討論併發伺服器的第
TCP/IP網路程式設計 學習筆記_8 --優雅地斷開套接字連線
基於TCP的半關閉 TCP中的斷開連線過程比建立連線過程更重要,因為建立連線過程一般不會出現什麼大的變數,但斷開過程就有可能發生預想不到的情況,因此要準確的掌控。 單方面斷開連線帶來的問題 Linux的close函式和Windows的closesocke
網路程式設計學習筆記(ioctl操作)
1、ioctl函式 其函式需要的標頭檔案及宣告如下: #include <unistd.h> int ioctl(int fd, int request, .../*void *arg/); 第三個引數總是一個指標,但指標的型別依賴於request 把和網路有關
STL學習筆記— —無序容器(Unordered Container)
ring 最大 布局 size fad oca rgs template max 簡單介紹 在頭文件<unordered_set>和<unordered_map> 中定義 namespace std { templa
機器學習筆記——線性迴歸(Linear Regression)
線性迴歸演算法 1 簡單線性迴歸(Simple Liner Regression) 解決迴歸問題 思想簡答,容易實現 許多強大的非線性模型的基礎 結果具有很好的可解釋性 蘊含機器學習中的很多重要思想 1.1 什麼是線性迴歸演算法?