代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
GO
】
计算指定字符串在另一个字符串中出现的次数
作者:
汶纡
/ 发布于
2014/11/18
/
956
package ftp import ( "fmt" "os" "net" "strconv" "strings" ) type FTP struct { host string port int user string passwd string pasv int cmd string Code int Message string Debug bool stream []byte conn net.Conn Error os.Error } func (ftp *FTP) debugInfo(s string) { if ftp.Debug { fmt.Println(s) } } func (ftp *FTP) Connect(host string, port int) { addr := fmt.Sprintf("%s:%d", host, port) ftp.conn, ftp.Error = net.Dial("tcp", addr) ftp.Response() ftp.host = host ftp.port = port } func (ftp *FTP) Login(user, passwd string) { ftp.Request("USER " + user) ftp.Request("PASS " + passwd) ftp.user = user ftp.passwd = passwd } func (ftp *FTP) Response() (code int, message string) { ret := make([]byte, 1024) n, _ := ftp.conn.Read(ret) msg := string(ret[:n]) code, _ = strconv.Atoi(msg[:3]) message = msg[4 : len(msg)-2] ftp.debugInfo("<*cmd*> " + ftp.cmd) ftp.debugInfo(fmt.Sprintf("<*code*> %d", code)) ftp.debugInfo("<*message*> " + message) return } func (ftp *FTP) Request(cmd string) { ftp.conn.Write([]byte(cmd + "\r\n")) ftp.cmd = cmd ftp.Code, ftp.Message = ftp.Response() if cmd == "PASV" { start, end := strings.Index(ftp.Message, "("), strings.Index(ftp.Message, ")") s := strings.Split(ftp.Message[start:end], ",", -1) l1, _ := strconv.Atoi(s[len(s)-2]) l2, _ := strconv.Atoi(s[len(s)-1]) ftp.pasv = l1*256 + l2 } if (cmd != "PASV") && (ftp.pasv > 0) { ftp.Message = newRequest(ftp.host, ftp.pasv, ftp.stream) ftp.debugInfo("<*response*> " + ftp.Message) ftp.pasv = 0 ftp.stream = nil ftp.Code, _ = ftp.Response() } } func (ftp *FTP) Pasv() { ftp.Request("PASV") } func (ftp *FTP) Pwd() { ftp.Request("PWD") } func (ftp *FTP) Cwd(path string) { ftp.Request("CWD " + path) } func (ftp *FTP) Mkd(path string) { ftp.Request("MKD " + path) } func (ftp *FTP) Size(path string) (size int) { ftp.Request("SIZE " + path) size, _ = strconv.Atoi(ftp.Message) return } func (ftp *FTP) List() { ftp.Pasv() ftp.Request("LIST") } func (ftp *FTP) Stor(file string, data []byte) { ftp.Pasv() if data != nil { ftp.stream = data } ftp.Request("STOR " + file) } func (ftp *FTP) Quit() { ftp.Request("QUIT") ftp.conn.Close() } // new connect to FTP pasv port, return data func newRequest(host string, port int, b []byte) string { conn, _ := net.Dial("tcp", fmt.Sprintf("%s:%d", host, port)) defer conn.Close() if b != nil { conn.Write(b) return "OK" } ret := make([]byte, 4096) n, _ := conn.Read(ret) return string(ret[:n]) }
试试其它关键字
出现的次数
同语言下
.
将SQL查询结果转换成map数组
.
德州扑克的核心规则算法
.
格式化时间
.
超简单QR二维码生成器
.
检查命令位置,替代 mac 下 whereis
.
百度 API 翻译工具
.
鼠标事件处理
.
快速排序
.
鸡尾酒排序
.
冒泡排序
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
汶纡
贡献的其它代码
(
55
)
.
手机类型判断
.
sql 节假日判断(春节、中秋、国庆、周末等)
.
使用LEFT OUTER JOIN 实现not in 子句
.
获取图片宽度高度、大小尺寸、图片类型、用于布局的im
.
简单的大视频截取播放功能
.
如何通過ID號來刪除DataTable中的行
.
检测远程URL是否存在
.
阻止html页面加载
.
sql生成九九乘法表
.
oracle存储遍历表中数据
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3