问题1、socket编程中,客户端与服务端建立连接后,客户端如何获得自身占用的IP和端口号???
问题2、在编写ftp客户端的时候,需要在ftp服务器目录之间进行文件复制,请问最好应该如何做???
不知道大家听明白了没有,谢谢!

解决方案 »

  1.   

    SOCKADDR_IN   sockAddr; 
    int   iLen=sizeof(sockAddr); 
    getpeername(m_lClient,(struct   sockaddr   *)&sockAddr,&iLen);//得到远程IP地址和端口号 getsockname(m_lClient,(struct   sockaddr   *)&sockAddr,&iLen);//得到本地的IP地址和端口号 
    strAddr   =   inet_ntoa(sockAddr.sin_addr);//IP 
    uIPPort   =   sockAddr.sin_port; //端口号
    第二个问题估计只能从a读到b,再从b写到c了。应该不能控制直接从a发到c吧。
      

  2.   

    我的意思是,客户端连接服务端时,没有绑定IP地址和端口号,系统会自动分配,现在客户端程序想获取这个IP地址和端口号
      

  3.   

    1.getsockname
    2.先读到本地,在上传到服务器
      

  4.   

    1、如果是UDP你就是知道的,如果是TCP你可以要求服务器反给你
    2、在服务器端编个程序,然后发个消息过去让它去复制
      

  5.   

    有个同事是在服务端编个程序,分析ServerU的日志,然后复制的,局限性是如果是其它的ftp服务器就不行了
      

  6.   

    SOCKADDR_IN sockAddr;  
    int iLen=sizeof(sockAddr);  
    getpeername(m_lClient,(struct sockaddr *)&sockAddr,&iLen);//得到远程IP地址和端口号  getsockname(m_lClient,(struct sockaddr *)&sockAddr,&iLen);//得到本地的IP地址和端口号  
    strAddr = inet_ntoa(sockAddr.sin_addr);//IP  
    uIPPort = sockAddr.sin_port; //端口号
    第二个问题估计只能从a读到b,再从b写到c了。应该不能控制直接从a发到c吧
      

  7.   

    问题2、在编写ftp客户端的时候,需要在ftp服务器目录之间进行文件复制,请问最好应该如何做???那自己写FTP服务器怎么样呀