inet_ntoa(addrClient.sin_addr));
write(sockConn,buf,strlen(buf)+1);
printf("The Message from Client are as fallows:\n");
close(sockConn);//关闭连接套结子
}
}
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<string.h>
#include<stdio.h>
#include<sys/stat.h>
listen(sock,5);//监听套结子
int len=sizeof(struct sockaddr_in);
while(1)
{
int sockConn=accept(sock,&addrClient,&len);//声明套结子用来表示连接
char buf[100];
main()
{
int sock;//定义套接字
struct sockaddr_in addr,addrClient;//声明套结子的地址信息
int addr_len=sizeof(struct sockaddr_in);
sock=socket(AF_INET,SOCK_STREAM,0);//初始化套结子
}
if(fork()==0)//创建新线程
{
execl("/sbin/route","route","add","default","gateway",gateway,NULL);//配置默认网关
}
if(fork()==0)//创建新线程
{
FILE* fp;//声明文件指针
fp=fopen("/etc/resolv.conf","a");//以向后追加的方式打开文件
fprintf(fp,"nameserver %s\n",dns);//将客户端发来的DNS更改写入配置文件
fclose(fp);//关闭文件
}
char ip[100];//声明存放客户端输入的ip
read(sockConn,ip,100);//接受客户端发来的信息
printf(" ip:%s\n",ip);//打印接受到的信息
char mask[100];//声明存放客户端输入的掩码
read(sockConn,mask,100);//接受客户端发来的信息
printf("netmask:%s\n",mask);//打印接受到的信息
char gateway[100];//声明存放客户端输入的默认网关
read(sockConn,gateway,100);//打印接受到的信息
if(fork()==0)//创建新线程
{
execl("/sbin/ifconfig","ifconfig","eth0",ip,"up",NULL);//配置ip
}
if(fork()==0)//创建新线程
{
execl("/sbin/ifconfig","ifconfig","eth0","netmask",mask,"up",NULL);//配置掩码
///Байду номын сангаас/////////设置套结子的地址信息////////
addr.sin_family=AF_INET;
addr.sin_port=htons(9081);
addr.sin_addr.s_addr=htonl(INADDR_ANY);
bind(sock,&addr,sizeof(addr));//邦定套结子
printf("gateway:%s\n",gateway);//打印接受到的信息
char dns[100];//声明存放客户端输入的DNS
read(sockConn,dns,100);//打印接受到的信息
printf(" dns:%s\n",dns);//打印接受到的信息