int main(int argc, char **argv)
{
int clientsocket;
struct sockaddr_in serveraddress,clientaddress;
int destLen = sizeof(struct sockaddr_in); //
char srcAddr[64] = {0};
char *pSrcAddr = NULL;
clientsocket=socket(AF_INET,SOCK_DGRAM,0);
serveraddress.sin_family=AF_INET;
serveraddress.sin_port=htons(5050);
serveraddress.sin_addr.s_addr=htonl(INADDR_ANY);
#if 0
int opt=1;
if(setsockopt(clientsocket,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt))<0){
perror("setsockopt");
return 0;
}
#endif
#if 1
if(bind(clientsocket,(struct sockaddr*)&serveraddress,sizeof(struct sockaddr))!=0){
perror("bind");
return 0;
}
#endif
char buf[100];
while(1){
memset(buf,0,100);
int size=0;
size=recvfrom(clientsocket,buf,100,0,(struct sockaddr*)&clientaddress,&destLen);
//buf[size]='\0';
//printf("client recv IP:%s msg:%s\n",inet_ntoa(serveraddress.sin_addr),buf);
printf("size:%d \n",size);
printf("recv msg :%s \n",buf);
pSrcAddr = inet_ntoa(clientaddress.sin_addr);
memcpy(srcAddr,pSrcAddr,16);
printf("recv Ip :%s \n",inet_ntoa(clientaddress.sin_addr));
if(strcmp(buf,"quit")==0){
printf("system quit!\n");
close(clientsocket);
return 0;
}
}
return 0;
}