亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1751 | 回復(fù): 9
打印 上一主題 下一主題

ftp問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-04-06 11:59 |只看該作者 |倒序?yàn)g覽
以前沒(méi)寫(xiě)過(guò)FTP程序,現(xiàn)在做一個(gè)簡(jiǎn)單的客戶端,
想問(wèn)下寫(xiě)過(guò)的朋友,登陸的時(shí)候是如何把用戶和
密碼send上去的.


  1. send(sockfd, "user", 4, 0);
  2. send(sockfd, "pass", 4, 0);
復(fù)制代碼

這樣好象不行.

如果哪位朋友有這方面的demo程序,方便的話
給我發(fā)一個(gè)leberco@sina.com,謝謝

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-04-06 12:02 |只看該作者
user 后免應(yīng)該有 用戶名吧??

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-04-06 12:06 |只看該作者
// FTP.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//





//=======================


//演示代碼,沒(méi)有錯(cuò)誤處理,盡量簡(jiǎn)化了流程




//=========================
#include "stdafx.h"
#include <winsock.h>
#include <windows.h>
#include <stdio.h>
#pragma comment (lib,"Ws2_32"

//====以下是STL庫(kù)
#include <string>
#include <vector>
#include <algorithm>


using namespace std;


//因?yàn)槭茄菔敬a,所以申明了全局變量,請(qǐng)不要效仿

    char Buff[1024];

    SOCKET listenFD=NULL;

//================================

    int recvbuff()
    {
   
   
        ZeroMemory(Buff,1024); //清0

        int ret =  recv(listenFD,Buff,1024,0);

        printf(Buff);

        return 0;
   
    }


int main(int argc, char *argv[])
{

   
   



  struct sockaddr_in my;


  my.sin_family=AF_INET;

  my.sin_addr.s_addr=inet_addr("192.168.18.119";

  my.sin_port=htons(21);

  WSADATA wsadata;
  BOOL ThreadFlag=FALSE;
  DWORD ThreadID=0;
  int nRet=0;

  nRet=WSAStartup(MAKEWORD(2,2),&wsadata);    //初始化



  listenFD=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);


      while (1)
    {
        nRet=connect(listenFD,(struct sockaddr*)&my,sizeof (struct sockaddr));


        if (nRet!=SOCKET_ERROR)
        {
            
          break;
                             
        }

    }

    recvbuff(); //接收服務(wù)器版本信息
      
    //==================================
   
    char user[] = "USER admin\r\n";
    char pass[] =  "admin\r\n";

    send(listenFD,user,sizeof(user),0);

    recvbuff();


    //==========================================

   
    send(listenFD,pass,sizeof(pass),0);

    recvbuff();     


//=================================

    char type[] = "TYPE I\r\n";      

    send(listenFD,type,sizeof(type),0);  //更改傳輸類(lèi)型為二進(jìn)制

    recvbuff();

    //==========================================

    //更改路徑命令是 CWD

    //================================
    char pasv[] = "ASV\r\n";      

    send(listenFD,pasv,sizeof(pasv),0);  //更改傳輸類(lèi)型為二進(jìn)制

    recvbuff();

    //=======================================
   


    //以下代碼摘自我的FTP客戶端,使用了 string 對(duì)象,

    //作用是處理服務(wù)器發(fā)回的 PASV 信息,得到把其中的IP和端口

    //發(fā)回的格式為    227 Entering Passive Mode (192,168,18,119,11,7..
      
    // 192,168,18,119 = 192.168.18.119
     
    //  端口 = 11*256 + 78

    //========================================
      
      string ifstr = Buff;  //把返回信息傳給 string 對(duì)像,string 是STL中的字符串對(duì)象


      string::size_type pos = 0;                      //長(zhǎng)度,當(dāng)整型吧,size_type是為了跨平臺(tái)
      
        string::size_type slen = ifstr.find("("+1;    // find 是指查找字符 "(" 的位置,返回長(zhǎng)度

        string::size_type dlen = 0 ;
   
        int i = 0 ;

        for( i ; i < 4 ; i++)                            //把IP地址中的 "," 換成 "."
        {
            dlen = ifstr.find(",",dlen);

            ifstr.replace(dlen,1,".";

            dlen++;           
        }
      

        string ip = ifstr.substr(slen,dlen-slen-1);    //把IP地址提出來(lái)

        //====================================        //把端口提出來(lái)
      
        string temport;

        u_short uport;

        slen = dlen;
      
        dlen = ifstr.find(",";

        temport = ifstr.substr( slen , dlen - slen); //slen 起始地址,第二參數(shù)表示 以第一個(gè)地址copy出的字節(jié)數(shù)

        uport = atoi( temport.c_str()) * 256 ;
        //=====================================

        slen = dlen + 1;

        dlen = ifstr.find("",slen) ;

        temport = ifstr.substr(slen,dlen - slen);

        uport += atoi( temport.c_str());

        //====================================
      

        //分析返回的PASV信息完成,開(kāi)始數(shù)據(jù)通道連接

        //===================================


        SOCKET ssock=NULL;

        ssock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

      
      struct sockaddr_in server;

   
      server.sin_family=AF_INET;

      server.sin_addr.s_addr=inet_addr(ip.c_str());
     
      server.sin_port=htons(uport);



    while (1)
    {
        nRet=connect(ssock,(struct sockaddr*)&server,sizeof (struct sockaddr));


        if (nRet!=SOCKET_ERROR)
        {
            
          break;
                             
        }

    }



    printf("數(shù)據(jù)通道連接成功\n";






    //==============================================




    //==========================================


    char stor[] = "STOR 測(cè)試.rar\r\n";    //上傳文件   

    send(listenFD,stor,sizeof(stor),0);

    recvbuff();

    //=======================================

        FILE *fp = NULL;                            //打開(kāi)文件

        fp = fopen( "c:\\測(cè)試.rar","rb";          //只讀打開(kāi)二進(jìn)制文件
      
      
    //============================================


    char filebuff[1024]  ; //發(fā)送文件緩沖

    long ret;      //實(shí)際發(fā)送的字節(jié)數(shù)
   

    printf("開(kāi)始發(fā)送文件......";

    while(  fread(filebuff,1,1024,fp) )  //接收文件只到全部讀完
    {
        slen = 1024;

        while( slen )                //不停發(fā)送,只到全部發(fā)送完成
        {
            ret = send(ssock,filebuff,1024,0);

            Sleep(0);           

            slen  -= ret;
        }

        ZeroMemory(filebuff,1024);
   
   
    }

      closesocket(ssock);


    printf("發(fā)送完成";

    return 0;


}

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-04-06 12:07 |只看該作者
別人的,沒(méi)有實(shí)驗(yàn),但是看著覺(jué)得對(duì)(有一個(gè)地方有問(wèn)題,自己找)

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-04-06 12:11 |只看該作者
原帖由 heroooooo 于 2007-4-6 12:07 發(fā)表
別人的,沒(méi)有實(shí)驗(yàn),但是看著覺(jué)得對(duì)(有一個(gè)地方有問(wèn)題,自己找)


謝謝了

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-04-06 12:12 |只看該作者
原帖由 net_robber 于 2007-4-6 12:02 發(fā)表
user 后免應(yīng)該有 用戶名吧??

有的,我是這樣寫(xiě)的"USER name"

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
7 [報(bào)告]
發(fā)表于 2007-04-06 12:36 |只看該作者
原帖由 toiby 于 2007-4-6 12:12 發(fā)表

有的,我是這樣寫(xiě)的"USER name"

別忘記了加\r\n

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2007-04-06 12:51 |只看該作者
原帖由 cjaizss 于 2007-4-6 12:36 發(fā)表

別忘記了加\r\n


恩,剛發(fā)現(xiàn)這個(gè)問(wèn)題,謝謝提醒,終于登陸成功了

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
9 [報(bào)告]
發(fā)表于 2007-04-06 12:52 |只看該作者
看 RFC

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2007-04-06 13:02 |只看該作者
原帖由 flw 于 2007-4-6 12:52 發(fā)表
看 RFC

里面好多東西啊
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP