通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0

遇到一个很恶心的问题。

while(1)

{

recvfrom(sockfd, readbuff, UDP_CMD_BUFF_LENGTH - 1, 0, (struct sockaddr *)&Glob_remot_88_port_add, &len);

PRINT("[recevudp]len %d IP is %s\n", len, inet_ntoa(Glob_remot_88_port_add.sin_addr));

}

这个函数, 第一次接受打印出的发送方IP地址总是0.0.0.0;

困扰了很久。直到今天!终于解决了。

在recvfrom之前加一句: len = sizeof(struct sockaddr);

就OK了!!!

http://blog.163.com/[email protected]/blog/static/82597716201072464553283/

http://bbs.csdn.net/topics/360141164

时间: 2024-10-05 04:16:49

通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0的相关文章

获取客户端的IP地址

/// <summary> /// 获取客户端的IP地址 /// </summary> /// <returns></returns> public static string ClientIP() { string result = String.Empty; result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (result

服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)

一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebService进行通信.服务器端维护IP白名单列表,只有IP地址在白名单中的客户端才可以成功调用到接口,获得服务. 二.代码清单 若要成功获取客户端IP地址,需要如下Jar包的支持. servlet-api.jar axis.jar axis2-kernel-1.6.2.jar 获取IP地址的具体代码如下: i

asp网络编程:ASP如何获取客户端真实IP地址

要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取.不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP.还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVari

使用SEP禁止客户端修改IP地址 - 飞舞的菜刀 - 51CTO技术博客

1.首先从注册表中搜寻 IP地址所在的位置,查到几项,此项即可: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 2.打开[应用程序与设备控制]界面,单击[添加],新建一个策略,填写相应的"名称":如下图 2.点击[应用程序控制],[添加],输入规则集名字.在[将此规则应用于下列进程]右边单击[添加] 输入"*",在[请勿将此规则应用于下列程序],添加输

socket.io获取客户端的IP地址(修正官方1.0.4版本BUG)

之前我有看过别人写的文章,说到如何获取客户端IP地址,代码如下: var io = require("socket.io").listen(server); io.sockets.on("connection", function (socket) { var address = socket.handshake.address; console.log("New connection from " + address.address + &qu

获取客户端真实IP地址

1.需要引入log4j-1.2.14.jar package org.ydd.test; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; /** * @author coco * @version * 获取IP4 */ public class IP4 { private static final Logger log = Log

java获取客户端请求ip地址

public static String getIpAddr(HttpServletRequest request) { if (null == request) { return null; } String proxs[] = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWAR

ASP.NET - 获得客户端的 IP 地址

通常我们都通过下面的代码获得IP: REMOTE_ADDR 说明:访问客户端的 IP 地址. 此项信息用户不可以修改.如果真的给改了的话,你也和服务器连接不了了,服务器就是按照这个来与客户端建立连接并进行通讯的.实际我测试修改这个 ServerVariables , 一点效果都没有.仍然获得是实际的值. string ip =System.Web.HttpContext.Current.Request.UserHostAddress; string ip =System.Web.HttpCont

PHP获取APP客户端的IP地址的方法

分析php获取客户端ip 用php能获取客户端ip,这个大家都知道,代码如下: [php] view plaincopyprint? /** * 获取客户端ip * @param number $type * @return string */ function getClientIp($type = 0) { $type       =  $type ? 1 : 0; static $ip  =   NULL; if ($ip !== NULL) return $ip[$type]; if (