当前位置: 技术问答>linux和unix
{求救}socket编程处理udp广播
来源: 互联网 发布时间:2016-02-19
本文导语: 本人想局域网通信软件,现在要实现如下功能: 服务器向局域网发一个广播(固定端口例如5555),客户机收到广播后给服务器返回消息, 想问一下,服务器怎样得到所有收到广播包的客户机的IP地址和主机名,并将...
本人想局域网通信软件,现在要实现如下功能:
服务器向局域网发一个广播(固定端口例如5555),客户机收到广播后给服务器返回消息,
想问一下,服务器怎样得到所有收到广播包的客户机的IP地址和主机名,并将其写入一个文件或数组?
谢谢
在线等答案
服务器向局域网发一个广播(固定端口例如5555),客户机收到广播后给服务器返回消息,
想问一下,服务器怎样得到所有收到广播包的客户机的IP地址和主机名,并将其写入一个文件或数组?
谢谢
在线等答案
|
i= recvfrom(udp_socket,(char *)netdata,1024,0,(struct sockaddr *)&saddr,&saddrlen);
//sendto(sock,&data1,1024,0,(struct sockaddr *)&faddr,saddrlen);
// printf("%d frome %s ,port %d n",i,inet_ntoa(saddr.sin_addr),ntohs(saddr.sin_port));
你用recvfrom接受时,有个地址字段来来说明你接受到的包的ip地址,
主机名,不知道该怎么获得
//sendto(sock,&data1,1024,0,(struct sockaddr *)&faddr,saddrlen);
// printf("%d frome %s ,port %d n",i,inet_ntoa(saddr.sin_addr),ntohs(saddr.sin_port));
你用recvfrom接受时,有个地址字段来来说明你接受到的包的ip地址,
主机名,不知道该怎么获得
|
char *pSrcIP = "";
recvfrom(sockfd, recvBuff, MAXLINE, 0, (struct sockaddr *)&cliaddr, &len);//里面有个cliaddr
pSrcIP = inet_ntoa(cliaddr.sin_addr);//这个pSrcIP就是主机的ip了
recvfrom(sockfd, recvBuff, MAXLINE, 0, (struct sockaddr *)&cliaddr, &len);//里面有个cliaddr
pSrcIP = inet_ntoa(cliaddr.sin_addr);//这个pSrcIP就是主机的ip了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。