我想让客户端用户登录时,服务端能获取客户ip,然后转发到其他客户。
1、客户端怎么写?即具体怎么利用sock传递ip?
2、服务端怎么获取ip?并转发ip?
不好意思,我是新手,问题的问题可能有些菜,望高手能具体解答。谢谢!!

解决方案 »

  1.   

    IP有两种情况
    1、客户机本地的IP
    2、客户机连接服务器的IP,可能是代理服务器的IP或者路由器的IP...前者需要专门的数据传递,后者可以从服务器的socket连接中获取
      

  2.   

    直接在accept中
    CString rSocketAddress;
    UINT rSocketPort  = 0;
    GetSockName(rSocketAddress,rSocketPort);
    客户端不用做处理,只要连接上就行了
      

  3.   

    客户机连接服务器的IP可以如下获取:
     SOCKADDR_IN   remoteAddr; 
     int iLen = sizeof(remoteAddr);
     socketC   =   accept(socketL, (sockaddr*)remoteAddr, &iLen); 看以参看下面文章:
    http://www.joyvc.cn/NetworkAndCommunication/NetworkAndCommunication00019.html
      

  4.   

    然后通过remoteAddr地址结构获取IP和端口号等信息
      

  5.   

    accept
    The accept function permits an incoming connection attempt on a socket.SOCKET accept(
      SOCKET s,
      struct sockaddr* addr,
      int* addrlen
    );可以通过第二个参数addr返回客户端的IP和端口信息
      

  6.   

    tcp下accept里的sockaddr*参数,udp下recvfrom里的sockaddr*参数
      

  7.   


    孙鑫老师书客户端服务端http://www.nuli365.com/ReadCode.aspx?id=534
      

  8.   

    这个好说:http://www.comprg.com.cn/detail.asp?hw_id=2633
    去看看吧!要学会网上搜索