socket程式設計中相關資料結構

2021-06-28 02:06:22 字數 2169 閱讀 8146

分類: socket程式設計

2008-09-20 18:29

801人閱讀收藏

舉報 socket

程式設計struct

資料結構

null

網路hostent

資料結構:

struct hostent;

詳細資料:

h_name --

主機的正式名稱;

h_aliases --

空位元組-

主機的別名;

h_addrtype --

主機ip

位址型別;

ipv4(af_inet),ipv6(af_inet6)

h_length --

主機ip

位址的位元長度;

h_addr_list --

零位元組-

主機網路位址指標;網路位元組序,所以要列印出的話要呼叫

inet_ntop()

批註:使用這個東西,首先要包含

2個頭檔案:

#include

#include

gethostbyname()

成功時返回乙個指向結構體

hostent

指標,或者是個空

(null)

指標。例子:

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv)  

if ((h=gethostbyname(argv[1])) == null)  

printf("host name : %s ", h->h_name);

printf("ip address : %s ",inet_ntoa(*((struct in_addr *)h->h_addr))); 

return 0;

}注意:在使用

gethostbyname()

時,不能用

perror()

列印錯誤資訊(因為

errno

沒有使用),應該呼叫

herror().

struct hostent *gethostbyname(const char*name);

這個函式的傳入值是網域名稱或者主機名,例如:

「www.google.com」

等等。傳出值是乙個

hostent

的結構。如果函式呼叫失敗,將返回

null

sockaddr

sockaddr_in

資料結構:

struct sockaddr

;此時:

struct in_addr

struct sockeaddr_in ;

此時:struct in_addrs_un_b;

structs_un_w;

u_longs_addr;

}s_un;

};inet_addr()

是將乙個點分制的

ip位址(如

192.168.0.1

)轉換為上述結構中需要的32位

ip位址(

0xc0a80001

)通常的用法是:

socket sockfd;

struct hostent *he;

struct sockaddr_in my_addr;

if ((sockfd=socket(af_inet,sock_stream,0)) == -1)

my_addr.sin_family=af_inet;

my_addr.sin_port=htons(myport);

my_addr.sin_addr.s_addr = htonl(inaddr_any);

bzero(&(my_addr.sin_zero,8);//zero the rest of the struct

if (bind(sockfd, (struct sockaddr *)&my_addr,sizeof(structsockaddr)) == -1)

Socket通訊 資料結構WSADATA

資料結構wsadata twsadata packed record wversion word whighversion word szdescription array 0.wsadescription len of char szsystemstatus array 0.wsasys stat...

socket程式設計相關函式

本文旨在整理一下linux下socket程式設計時一些常用的一些理解總結,如有不足希望大家批評指點 linux version 3.10.0 862.14.4.el7.x86 64 gcc version 4.8.5 20150623 red hat 4.8.5 28 gcc tcp的伺服器端soc...

資料結構程式設計

1 陣列部分 雜湊表思想 雜湊表也稱為雜湊表,是演算法終於時間和空間作出權衡的經典例子。當乙個表所有的鍵都是小整數時,便可以使用乙個陣列來實現無序的符號表,將鍵作為陣列的索引而陣列i中所儲存的值就是該鍵所對應的鍵值,即key value對應。雜湊表的思想也是這樣子的,只是雜湊表的鍵的型別更為複雜而已...