inet_aton()函數
功能:inet_aton()函數用於將小數點分隔的十進制IP地址轉換成一串數字序列格式的IP地址;
原型:int inet_aton(const char *string, struct in_addr *addr);
返回值:如果這個函數成功,函數的返回值非零,如果輸入地址不正確則會返回零;
頭文件:sys/socket.h (Linux)
inet_ntoa()函數
功能inet_ntoa()函數用於將一串數字序列格式的IP地址轉化成小數點分隔的十進制IP地址;
原型:char *inet_ntoa (struct in_addr);
返回值:若無錯誤發生,inet_ntoa()返回一個字符指針。否則的話,返回NULL。其中的數據應在下一個WINDOWS套接口調用前複製出來;
頭文件:arpa/inet.h (Linux)
sendto和recvfrom
頭文件
#include <sys/types.h>
#include <sys/socket.h>
函數原型
int sendto (int s, const void *buf, int len, unsigned int flags, const struct sockaddr *to, int tolen);
int recvfrom(int s, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen);
函數說明
sendto(),是把UDP數據報發給指定地址;recvfrom()是從指定地址接收UDP數據報。
參數說明
s: socket描述符。
buf: UDP數據報緩存地址。
len: UDP數據報長度。
flags: 該參數一般為0。
to: sendto()函數參數,struct sockaddr_in類型,指明UDP數據發往哪里報。
tolen: 對方地址長度,一般為:sizeof(struct sockaddr_in)。
fromlen:recvfrom()函數參數,struct sockaddr_in類型,指明從哪裡接收UDP數據報。
函數返回值
對於sendto()函數,成功則返回實際傳送出去的字符數,失敗返回-1,錯誤原因存於errno 中。
對於recvfrom()函數,成功則返回接收到的字符數,失敗則返回-1,錯誤原因存於errno中。
沒有留言:
張貼留言