0
我想從一個字符串複製一個IP地址到struct sockaddr_in,但不知何故彈出一些錯誤。無法將IP地址從字符串複製到sockaddr_in
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
char *buf = "128.10.25.102:30015";
char ip[30];
struct sockaddr_in s1_addport;
int i = 0;
while (buf[i] != ':') i++;
strncpy(ip, &buf[0], i);
ip[strlen(ip)] = '\0';
printf("ip: %s, strlen:%zu\n",ip,strlen(ip));
inet_aton(ip,&s1_addport.sin_addr);
printf("Server IP: %s\n",inet_ntoa(s1_addport.sin_addr));
return 0;
}
上述代碼的輸出顯示:
ip: 128.10.25.102, strlen:13
Server IP: 0.0.0.0
有一個在從複製ip
串我無法找出值有些誤差。可能是什麼原因?
什麼錯誤彈出? – Downvoter
您是否嘗試過使用'inet_pton'而不是'inet_aton'? – Charles
沒有錯誤被彈出。 server_IP顯示爲0.0.0.0而不是128.10.25.102。對不起,我感到困惑 – re3el