首先,我写了一个非常简单的UDP服务端,我看了看,是IP地址写的问题,(下面详细代码),
当我有inet_addr("192.168.152.128")的时候,是不能成功收到信息的,但我用
htonl(INADDR_ANY)的时候,却是可以收到信息,为什么?(我的客户端是用广播地址:192.168.152.255)
#include"myhead.h"
char rbuf[50];
char wbuf[50];
int main()
{
int udp,size,len,opt=1;
struct sockaddr_in laddr;
struct sockaddr_in raddr;
laddr.sin_family = AF_INET;
laddr.sin_port = htons(8888);
laddr.sin_addr.s_addr = inet_addr("192.168.152.128");//疑惑在这里
size = sizeof(struct sockaddr_in);
udp = socket(AF_INET,SOCK_DGRAM,0);
setsockopt(udp,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof opt);
bind(udp,(struct sockaddr*)&laddr,size);
len=sizeof(struct sockaddr);
while(1)
{
recvfrom(udp,rbuf,50,0,(struct sockaddr*)&raddr,&len);
printf("%s\n",rbuf);
bzero(rbuf,50);
}
}