UNIX網路程式設計學習(5)--只支援IPv4的inet_pton和inet_ntop的簡化版本
inet_pton:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>
/* Delete following line if your system's headers already DefinE this
function prototype */
int inet_aton(const char *, struct in_addr *);
/* include inet_pton */
int
inet_pton(int family, const char *strptr, void *addrptr)
{
if (family == AF_INET) {
struct in_addr in_val;
if (inet_aton(strptr, &in_val)) {
memcpy(addrptr, &in_val, sizeof(struct in_addr));
return (1);
}
return(0);
}
errno = EAFNOSUPPORT;
return (-1);
}
/* end inet_pton */
inet_ntop:
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <stdio.h>
#ifndef INET_ADDRSTRLEN
#define INET_ADDRSTRLEN 16
#endif
/* include inet_ntop */
const char *
inet_ntop(int family, const void *addrptr, char *strptr, size_t len)
{
const u_char *p = (const u_char *) addrptr;
if (family == AF_INET) {
char temp[INET_ADDRSTRLEN];
snprintf(temp, sizeof(temp), "%d.%d.%d.%d",
p[0], p[1], p[2], p[3]);
if (strlen(temp) >= len) {
errno = ENOSPC;
return (NULL);
}
strcpy(strptr, temp);
return (strptr);
}
errno = EAFNOSUPPORT;
return (NULL);
}
/* end inet_ntop */
相關文章
- UNIX網路程式設計學習(9)--getsockname和getpeername的用法及例項程式設計
- UNIX網路程式設計學習(15)--使用單程式和select的TCP伺服器程式程式設計TCP伺服器
- UNIX網路程式設計學習(16)--使用poll的TCP伺服器程式程式設計TCP伺服器
- UNIX網路程式設計學習(3)--簡單時間獲取伺服器程式程式設計伺服器
- Unix高階程式設計學習筆記--系統呼叫簡介程式設計筆記
- UNIX網路程式設計學習(4)--值-結果引數程式設計
- 如何讓tomcat只支援ipv4Tomcat
- IP地址轉換函式,inet_pton,inet_ntop函式
- Unix哲學(Unix程式設計藝術)程式設計
- Unix程式設計藝術,Unix哲學程式設計
- UNIX網路程式設計學習(17)--檢查套接字選項是否受支援並獲取預設值程式設計
- UNIX 網路程式設計學習(7)--readn,writen,readline的實現程式設計
- 【LINUX 學習】使用find和xargs[轉摘自《shell程式設計和unix命令》]Linux程式設計
- 最簡潔的PHP程式設計師學習路線及建議PHP程式設計師
- UNIX網路程式設計學習(13)--使用select的str_cli函式的實現程式設計函式
- Matlab學習-視覺化和程式設計Matlab視覺化程式設計
- UNIX網路程式設計學習(10)續--處理accept返回EINTR錯誤的TCP伺服器程式最終(正確)版本程式設計TCP伺服器
- 把學習遊戲化-----遊戲化程式設計學習遊戲程式設計
- UNIX網路程式設計學習(8)--伺服器端顯示客戶端的IP地址和埠號程式設計伺服器客戶端
- 程式設計師的學習和積累程式設計師
- 好程式設計師Java學習路線之Java中的物件流和序列化程式設計師Java物件
- 程式設計師從書本學習程式設計的 5 個建議程式設計師
- Linux系統程式設計【5】——stty的學習Linux程式設計
- 孩子應該學習程式設計的 5 個理由程式設計
- 《Unix 網路程式設計》15:Unix 域協議程式設計協議
- UNIX網路程式設計學習(18)--UDP回射(伺服器+客戶端)程式程式設計UDP伺服器客戶端
- 《UNIX網路程式設計》筆記 - select和poll程式設計筆記
- 《Unix 網路程式設計》11:名字和地址轉換程式設計
- ZT - UNIX 網路協議的深度分析(5)協議
- 程式設計師必看之學習設計的5大理由程式設計師
- UINX 網路程式設計學習(2)--簡單的時間獲取客戶程式UI程式設計
- 風變程式設計,讓程式設計學習更簡單!程式設計
- UNIX網路程式設計學習(1)--開啟ubuntu daytime服務程式設計Ubuntu
- 簡明高效的 Java 併發程式設計學習指南Java程式設計
- 一個“線上學習-練習“的簡單設計和應用
- 求助!!關於學習JAVA網路程式設計的方法和書籍!!Java程式設計
- UNIX網路程式設計學習(12)--對兩個數求和的str_echo函式-以及sscanf的用法程式設計函式
- 神經網路和深度學習簡史(全)神經網路深度學習