Sundy視頻學習------TCPIP編程基礎

一、
字節序:多字節數據在計算機內存中存儲或者網絡傳輸時各字節的存儲順序
主機序 //網絡序
常見的字節序:Little endian (小端)將低序字節存儲在起始地址
大端:將高位字節存儲在起始地址
htonl(host to net long)/htons/ntohs/ntohl大小端模式的轉換
二、IP地址及端口號
struct sockaddr
{
short int sa_family;
char sa_data[14];
}

for ipv4
struct sockaddr_in    /*INET*/
{
sa_family_t  sin_family;
struct in_addr  sin_addr;
unsigned short int sin_port;
}

struct in_addr
{
uint32_t  s_addr;
}

struct sockaddr_un /*本地UNIX*/
{
sa_family_t  sun_family;
char sun_path[108];
}

三、IP地址的轉換
int inet_aton(const char *cp, struct in_addr inp);
in_addr_t inet_addr(const char *cp);
int inet_ntoa(const char *cp, struct in_addr *inp);
四、DNS –HostName
struct hostent
{
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
#define h_addr h_addr_list[0]
}

struct hostent *gethostbyname(const char *name);

五、TCP編程
服務器socket、bind、listen、accept、send/recv、close
客戶端socket、connect、send/recv、close

不通過IP,而通過gethostbyname來請求服務器端: 無法連接是因爲沒有啓動daytime服務;解決辦法:安裝xinetd、修改/etc/xinetd.d/daytime文件,將兩個disable 的值yes改爲no,然後重啓/etc/init.d/xinetd restart

六、UDP編程
服務器socket、bind、recvfrom、處理、sendto、close
客服端socket、sendto、recvfrom、close

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章