先将Client端的板子IP地址修改为:192.168.1.231,同时修改下MAC地址。
Server端的板子IP地址修改为:192.168.1.230,不用修改MAC地址。
#define SERVER 1
#define CLIENT 0
/*globle variables*/
int sockfd,socklen;
struct sockaddr_in peeraddr,localaddr;
void net_init(char mode)
{
int n;
short port;
char *local,*peer;
sockfd=socket(AF_INET, SOCK_DGRAM, 0);
if(sockfd<0){
printf("socket creating err in udptalk\n");
exit(1);
}
socklen = sizeof(struct sockaddr_in);
if (mode==CLIENT) {
local="192.168.1.231";
peer="192.168.1.230";
}
else{
local="192.168.1.230";
peer="192.168.1.231";
}
port=1000;
memset(&peeraddr, 0, socklen);
peeraddr.sin_family=AF_INET;
peeraddr.sin_port=htons(port);
if(inet_pton(AF_INET, peer, &peeraddr.sin_addr)<=0){
printf("Wrong dest IP address!\n");
exit(0);
}
memset(&localaddr, 0, socklen);
localaddr.sin_family=AF_INET;
if(inet_pton(AF_INET, local, &localaddr.sin_addr)<=0){
printf("Wrong source IP address!\n");
exit(0);
}
localaddr.sin_port=htons(port);
if(bind(sockfd, (struct sockaddr *)&localaddr, socklen)<0){
printf("bind local address err in udptalk!\n");
exit(2);
}
}
在Client端的板子上的main函数里面执行:net_init(CLIENT);
在Servert端的板子上的main函数里面执行:net_init(SERVER);
这样两个板子就可以通过recvfrom函数和sendto函数进行通信了。