A. 一台服务器如何做到多网络线路接入
TCP协议:服务器端:tcp_server.c[cpp]viewplainprint?#include#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;//服务器端套接字intclient_sockfd;//客户端套接字intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(&my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))0)){buf[len]='/0';printf("%s/n",buf);if(send(client_sockfd,buf,len,0)#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;//服务器端套接字intclient_sockfd;//客户端套接字intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(&my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向连接通信,TCP协议*/if((server_sockfd=socket(PF_INET,SOCK_STREAM,0))0)){buf[len]='/0';printf("%s/n",buf);if(send(client_sockfd,buf,len,0)#include#include#include#includeintmain(intargc,char*argv[]){intclient_sockfd;intlen;structsockaddr_inremote_addr;//服务器端网络地址结构体charbuf[BUFSIZ];//数据传送的缓冲区memset(&remote_addr,0,sizeof(remote_addr));//数据初始化--清零remote_addr.sin_family=AF_INET;//设置为IP通信remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址remote_addr.sin_port=htons(8000);//服务器端口号/*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/if((client_sockfd=socket(PF_INET,SOCK_STREAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intclient_sockfd;intlen;structsockaddr_inremote_addr;//服务器端网络地址结构体charbuf[BUFSIZ];//数据传送的缓冲区memset(&remote_addr,0,sizeof(remote_addr));//数据初始化--清零remote_addr.sin_family=AF_INET;//设置为IP通信remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址remote_addr.sin_port=htons(8000);//服务器端口号/*创建客户端套接字--IPv4协议,面向连接通信,TCP协议*/if((client_sockfd=socket(PF_INET,SOCK_STREAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(&my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向无连接通信,UDP协议*/if((server_sockfd=socket(PF_INET,SOCK_DGRAM,0))#include#include#include#includeintmain(intargc,char*argv[]){intserver_sockfd;intlen;structsockaddr_inmy_addr;//服务器网络地址结构体structsockaddr_inremote_addr;//客户端网络地址结构体intsin_size;charbuf[BUFSIZ];//数据传送的缓冲区memset(&my_addr,0,sizeof(my_addr));//数据初始化--清零my_addr.sin_family=AF_INET;//设置为IP通信my_addr.sin_addr.s_addr=INADDR_ANY;//服务器IP地址--允许连接到所有本地地址上my_addr.sin_port=htons(8000);//服务器端口号/*创建服务器端套接字--IPv4协议,面向无连接通信,UDP协议*/if((server_sockfd=socket(PF_INET,SOCK_DGRAM,0))<0){perror("socket");return1;}/*将套接字绑定到服务器的网络地址上*/if(bind(server_sockfd,(structsockaddr*)&my_addr,sizeof(structsockaddr))<0){perror("bind");return1;}sin_size=sizeof(structsockaddr_in);printf("waitingforapacket/n");/*接收客户端的数据并将其发送给客户端--recvfrom是无连接的*/if((len=recvfrom(server_sockfd,buf,BUFSIZ,0,(structsockaddr*)&remote_addr,&sin_size))<0){perror("recvfrom");return1;}printf("receivedpacketfrom%s:/n",inet_ntoa(remote_addr.sin_addr));buf[len]='/0';printf("contents:%s/n",buf);close(server_sockfd);return0;}
B. 服务器双网卡双路由器如何设置同时使用
外网的网卡保留缺省网关,内网的网卡不要填缺省网关IP,如果你内网除了网卡所在的网段还有其他网段,在服务器上用route add命令增加其他网段的路由就可以。