以下ソースコードを実行したら、proc.goに飛んで終了してしまいます。
原因がわかる方いましたら、ご教授願います。
GO
1package main 2 3import ( 4 "fmt" 5 6 "github.com/onbings/ftpsclient" 7) 8 9func main() { 10 11 var FtpsClientParam_X ftpsclient.FtpsClientParam 12 13 FtpsClientParam_X.Id_U32 = 123 14 FtpsClientParam_X.LoginName_S = "mc" 15 FtpsClientParam_X.LoginPassword_S = "a" 16 FtpsClientParam_X.InitialDirectory_S = "/Seq" 17 FtpsClientParam_X.SecureFtp_B = false 18 FtpsClientParam_X.TargetHost_S = "127.0.0.1" 19 FtpsClientParam_X.TargetPort_U16 = 21 20 FtpsClientParam_X.Debug_B = false 21 FtpsClientParam_X.TlsConfig_X.InsecureSkipVerify = true 22 FtpsClientParam_X.ConnectTimeout_S64 = 2000 23 FtpsClientParam_X.CtrlTimeout_S64 = 1000 24 FtpsClientParam_X.DataTimeout_S64 = 5000 25 FtpsClientParam_X.CtrlReadBufferSize_U32 = 0 26 FtpsClientParam_X.CtrlWriteBufferSize_U32 = 0 27 FtpsClientParam_X.DataReadBufferSize_U32 = 0x100000 28 FtpsClientParam_X.DataWriteBufferSize_U32 = 0x100000 29 30 FtpsClientPtr_X := ftpsclient.NewFtpsClient(&FtpsClientParam_X) 31 if FtpsClientPtr_X != nil { 32 Err := FtpsClientPtr_X.Connect() 33 if Err == nil { 34 DirEntryArray_X, Err := FtpsClientPtr_X.List() 35 if Err == nil { 36 for _, DirEntry_X := range DirEntryArray_X { 37 fmt.Printf("(%d): %s.%s %d bytes %s\n", DirEntry_X.Type_E, DirEntry_X.Name_S, DirEntry_X.Ext_S, DirEntry_X.Size_U64, DirEntry_X.Time_X) 38 } 39 ReplyCode_i, ReplyMessage_S, Err := FtpsClientPtr_X.SendFtpCtrlCommand("FEAT", 211) 40 fmt.Printf("feat %d %s\n", ReplyCode_i, ReplyMessage_S) 41 if Err != nil { 42 Err = FtpsClientPtr_X.Disconnect() 43 } 44 45 } 46 } 47 } 48} 49
//proc.go if atomic.Load(&runningPanicDefers) != 0 { // Running deferred functions should not take long. for c := 0; c < 1000; c++ { if atomic.Load(&runningPanicDefers) == 0 { break } Gosched() } } if atomic.Load(&panicking) != 0 { gopark(nil, nil, waitReasonPanicWait, traceEvGoStop, 1) } exit(0)
以下のサイトを参考にしました。
https://github.com/onbings/ftpsclient
よろしくお願いします。
ローカルの環境で FTP サーバーは起動していますか?
d_tutuzさん、ご回答ありがとうございます!
targethostの設定しているサーバーが起動しています。
業務データにつきIPアドレスを出せないため、元データのlocalhostのままにしています。
開発環境では、サーバのIPアドレスを設定しています。
ちなみにですが、、
FtpsClientPtr_X := ftpsclient.NewFtpsClient(&FtpsClientParam_X)
if FtpsClientPtr_X != nil {
Err := FtpsClientPtr_X.Connect()
if Err == nil ←ここでproc.goの該当箇所に飛んでいます。
proc.goうんぬんは単に終了処理ですのであまり関係ないです。
Errがnilではないからmain処理で実行する処理内容が無く、
記述通りプログラムが終了しているだけです。
Goプログラムの一般的な実装ではErrがnilでない場合はそのErrを表示しましょう。
そうすると何が問題なのかが見えてくるはずです。
nobonoboさん、ご回答ありがとうございます!
Errを出力した結果、以下が返ってきました。
Ftps: Connection is not established
参考までにデバック内容は以下です。
09:01:04.744042 [FTP CON] Connect to IPアドレス:ポート->dial tcp4 IPアドレス:ポート: i/o timeout
ローカルでFFFTPを使用したら、対象のFTPサーバーに接続できるため、原因がわからない状態です。。。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー