server
int sk = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in si;
si.sin_family = AF_INET;
si.sin_addr.s_addr = INADDR_ANY; //INADDR_ANY本机IP地址
//inet_pton(AF_INET, "127.0.0.1", &si.sin_addr);
si.sin_port = htons(5000);
typedef struct sockaddr* sa;//定义别名
if(bind(sk, (sa)&si, sizeof(si)) < 0)
{
perror("bind");
return -1;
}
while(1)
{
char text[100] = {0};
socklen_t len = sizeof(sk);
int r = recvfrom(sk, text, sizeof(text), MSG_DONTWAIT, (sa)&si, &len);
if(r > 0)
{
printf("recvfrom %s\n", text);
}
}
client
int sk = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in si;
si.sin_family = AF_INET;
si.sin_addr.s_addr = INADDR_ANY;
si.sin_port = htons(5000);
while(1)
{
char text[] = "hello furong";
sendto(sk, text, strlen(text), 0, (struct sockaddr*)&si, sizeof(si));
}