日期:2014-05-16  浏览次数:20584 次

在程序中设置ip问题
struct   sockaddr_in       sin;    
struct   ifreq       ifr;    
int   fd;    
gchar   *ptr;

bzero(&ifr,sizeof(struct   ifreq));
fd=socket(AF_INET,SOCK_DGRAM,0);
strcpy(ifr.ifr_name, "etho ");
memset(&sin,0,sizeof(sin));
sin.sin_family=AF_INET;
ptr=gtk_entry_get_text(GTK_ENTRY(entry_ip));   //从文本框中得到用户输入的ip
sin.sin_addr.s_addr=inet_addr(ptr);    
memcpy(&ifr.ifr_addr,&sin,sizeof(sin));

if(ioctl(fd,SIOCSIFADDR,&ifr) <0)
{
g_print( "Not   setup   interface\n ");
    return;
}

为什么我的程序在执行   ioctl(fd,SIOCSIFADDR,&ifr)的时候,返回值小于0,程序就返回了,设置ip就失败了,这是为什么,求达人指点,急,本人在线等待

------解决方案--------------------
是不是你ioctl的问题