当前位置:  技术问答>linux和unix

socket inet_ntoa返回客户端地址字符串的问题!

    来源: 互联网  发布时间:2016-07-12

    本文导语:  iConnFd = accept(iListenFd, (struct sockaddr *)(&vCliAddr), &vCliLen);   memset(sClientIp,0,PARALEN);    strcpy( sClientIp, inet_ntoa(vCliAddr.sin_addr)    if( strstr(gMgrData->vClientAddr,EVERYTYPE) || strstr(gMgrData->vClientAddr,sClientIp) )    {      ...

iConnFd = accept(iListenFd, (struct sockaddr *)(&vCliAddr), &vCliLen);

  memset(sClientIp,0,PARALEN);
   strcpy( sClientIp, inet_ntoa(vCliAddr.sin_addr)
   if( strstr(gMgrData->vClientAddr,EVERYTYPE) || strstr(gMgrData->vClientAddr,sClientIp) )
   {
       debugLog("client ip is [%s]n",sClientIp);
   }
   else
   {
        errorLog("client ip is [%s] can not connect!n",sClientIp);
        write(iConnFd,conErrStr,52);
        close(iConnFd);
        continue;
   }

返回的地址字符串是0.0.0.0这是为什么?怎样修改能显示客户端的ip地址字符串

|
检查accept的返回值

|
变量不初始化就使用,当然有问题
accept之前加
vCliLen = sizeof(vCliAddr);

     The argument addr is a result argument that is filled-in with the address
     of the connecting entity, as known to the communications layer.  The
     exact format of the addr argument is determined by the domain in which
     the communication is occurring.  A null pointer may be specified for addr
     if the address information is not desired; in this case, addrlen is not
     used and should also be null.  Otherwise, the addrlen argument is a
     value-result argument; it should initially contain the amount of space
     pointed to by addr; on return it will contain the actual length (in
     bytes) of the address returned.  This call is used with connection-based
     socket types, currently with SOCK_STREAM.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php实现socket实现客户端和服务端数据通信源代码
  • socket客户端程序的问题
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 客户端 socket 断开后 服务器端系统如何处理?
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • 已和客户端连接建立的socket在客户端CTRL-C后怎么在服务器端捕捉这个错误?
  • 服务器与客户端建立socket连接,如何获得端口号.谢谢
  • python实现socket客户端和服务端简单示例
  • 客户端是linux通过socket编程实现服务器端win平台接收?
  • linux客户端程序能否和windows端的服务器程序进行socket通信?
  • socket编程中客户端绑定端口的问题,请兄弟们指点一下
  • 请问关于socket客户端因事件启动新线程的问题.高手请进
  • socket编程,设为非阻塞,客户端怎么判断connect已经成功呢?
  • 请问linux写socket的客户端如何实现WSAAsyncSelect
  • socket编程,服务器会用bind()绑定端口,而客户端不用绑定端口就可以调用connect()。那么客户端的端口时系统自己分配的么?是何时绑定的?
  • Socket客户端为什么Thread没有效果?
  • socket客户端connect服务端后,如何断开连接?
  • 请教关于socket通讯中客户端接收服务端信息的问题
  • socket 通讯问题!客户端获取服务端数据问题,死活都是0!
  • 关于linux socket 客户端编程
  • 请问,C语言socket编程中,客户端如何得到自己的IP?不要0.0.0.0
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3