goftp的使用

package main

import (
    "bitbucket.org/zombiezen/ftp"
    "fmt"
    "io/ioutil"
    "os"
)

func checkerr(err error) {
    if err != nil {
            fmt.Println("Now error:", err)
    }   
}

func main() {
    //登入
    c, err := ftp.Dial("tcp", "58.246.000.000:21")
    checkerr(err)
    err = c.Login("user", "pass")
    checkerr(err)
    //命令
    reply, err := c.Do("mkd /test")
    checkerr(err)
    fmt.Println("command info:", reply.String())
    fmt.Println("command code:", reply.Code)

    //获得数据,下载
    data, err := c.Binary("retr remotedataname.txt")//Binary是使用二进制,Text的话使用文本
    checkerr(err)
    a := make([]byte, 2000)//创建个容器
    data.Read(a) //将下载的数据读到容器里,暂时没有做buffer
    fmt.Println("list:", string(a)) //打印出remotedataname.txt的内容
    data.Close()

    //写入数据,上传
    b, _ := ioutil.ReadFile("/path/to/ftptest.txt") //指定需上传的文件
    rwc, _ := c.Binary("Stor test/stor.txt") //指定传到服务器的名字
    rwc.Write(b)//开始写(传)
    rwc.Close()
}

上面代码上出现的怪命令,如Stor,retr,mkd等,都是ftp的rfc上规定的,请看下面

http://wenku.baidu.com/view/fd5c3611f18583d049645969.html

telnet ftpserver 21
user username
pass password
help
help mkd

未完待续。。。。

转载于:https://my.oschina.net/u/943306/blog/152173

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值