FTP伺服器連線及狀態--vb.net
程式碼有註解。看不懂請留言。
Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports System.Text Public Class Form1 Private timeoutObject As ManualResetEvent Private ssocket As Socket Private isConn As Boolean Public Function CheckFtp(ByVal ip As String, ByVal ftpuser As String, ByVal ftppas As String, ByRef errmsg As String, Optional port As Integer = 21, Optional timeout As Integer = 2000) As Boolean '*********輸入資料檢查開始********* If ftpuser.Trim.Length = 0 Then errmsg = "FTP使用者名稱不能為空,請檢查設定!" Return False End If If ftppas.Trim.Length = 0 Then errmsg = "FTP密碼不能為空,請檢查設定!" Return False End If Dim address As IPAddress = Nothing Try address = IPAddress.Parse(ip) Catch ex As Exception errmsg = String.Format("FTP伺服器IP:{0}解析失敗,請檢查是否設定正確!", ip) Return False End Try '*********輸入資料檢查結束********* isConn = False Dim ret As Boolean = False Dim result(1024) As Byte '連線返回,使用者名稱返回,密碼返回,退出返回 Dim pingStatus As Integer = 0 Dim userStatus As Integer = 0 Dim pasStatus As Integer = 0 Dim exitStatus As Integer = 0 timeoutObject = New ManualResetEvent(False) Try Dim receivelength As Integer ssocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) ssocket.SendTimeout = timeout ssocket.ReceiveTimeout = timeout Try ssocket.BeginConnect(New IPEndPoint(address, port), New AsyncCallback(AddressOf callBackMethod), ssocket) If timeoutObject.WaitOne(timeout, False) = False Then '阻止當前執行緒 ssocket.Close() ssocket = Nothing pingStatus = -1 '超時返回狀態碼-1,並返回false值 End If If isConn = True Then '連線狀態 pingStatus = 200 Else pingStatus = -1 End If Catch ex As Exception pingStatus = -1 End Try If pingStatus = 200 Then '狀態碼200 - TCP連線成功 receivelength = ssocket.Receive(result) pingStatus = getFtpReturnCode(result, receivelength) ' 連線狀態 If pingStatus = 220 Then '狀態碼220 - FTP返回歡迎語 ssocket.Send(Encoding.Default.GetBytes(String.Format("{0}{1}", "USER " + ftpuser, Environment.NewLine))) receivelength = ssocket.Receive(result) userStatus = getFtpReturnCode(result, receivelength) If userStatus = 331 Then ssocket.Send(Encoding.Default.GetBytes(String.Format("{0}{1}", "PASS " + ftppas, Environment.NewLine))) receivelength = ssocket.Receive(result) pasStatus = getFtpReturnCode(result, receivelength) If pasStatus = 230 Then errmsg = String.Format("FTP:{0}@{1}登陸成功", ip, port) ret = True ssocket.Send(Encoding.Default.GetBytes(String.Format("{0}{1}", "QUIT", Environment.NewLine))) '登出FTP receivelength = ssocket.Receive(result) exitStatus = getFtpReturnCode(result, receivelength) Else errmsg = String.Format("FTP:{0}@{1}登陸失敗,使用者名稱或密碼錯誤({2})", ip, port, pasStatus) '狀態碼230的錯誤 End If Else errmsg = String.Format("使用使用者名稱:'{0}'登陸FTP:{1}@{2}時發生錯誤({3}),請檢查FTP是否正常配置!", ftpuser, ip, port, userStatus) '狀態碼331的錯誤 End If Else errmsg = String.Format("FTP:{0}@{1}返回狀態錯誤({2}),請檢查FTP服務是否正常執行!", ip, port, pingStatus) '狀態碼220的錯誤 End If Else errmsg = String.Format("無法連線FTP伺服器:{0}@{1},請檢查FTP服務是否啟動!", ip, port) '狀態碼200的錯誤 End If Catch ex As Exception '連接出錯 errmsg = String.Format("FTP:{0}@{1}連接出錯:", ip, port) + ex.Message 'Common.logger(errmsg) '寫日誌 ret = False Finally If ssocket IsNot Nothing Then ssocket.Close() '關閉socket ssocket = Nothing End If End Try Return ret End Function Private Sub callBackMethod(ByVal asyncResult As IAsyncResult) Try ssocket = asyncResult.AsyncState If ssocket IsNot Nothing Then ssocket.EndConnect(asyncResult) isConn = True End If Catch ex As Exception isConn = False Finally timeoutObject.Set() End Try End Sub ''' <summary> ''' 傳遞FTP返回的byte陣列和長度,返回狀態碼(Integer) ''' </summary> ''' <param name="retByte"></param> ''' <param name="retLen"></param> ''' <returns></returns> ''' <remarks></remarks> Private Function getFtpReturnCode(ByVal retByte() As Byte, ByVal retLen As Integer) As Integer Try Dim str As String = Encoding.ASCII.GetString(retByte, 0, retLen).Trim MsgBox(Encoding.UTF8.GetString(retByte)) '檢視每次返回情況 Return Integer.Parse(str.Substring(0, 3)) Catch ex As Exception Return -1 End Try End Function End Class
相關推薦
FTP伺服器連線及狀態--vb.net
程式碼有註解。看不懂請留言。 Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports System.Text Public Class
Visual C++網路程式設計經典案例詳解 第4章 FTP瀏覽器 登入FTP伺服器 連線FTP伺服器
在對FTP檔案進行相關處理之前 必須在成功連線 登入伺服器以後 才可以執行相關的操作 因為FTP連線是基於Windows套接字程式設計的 所以FTP的連線過程和Socket連線一樣 也就是客戶端建立連線套接字以後 呼叫函式Connect()向伺服器連線請求 使用者需要特別
php 獲取ftp伺服器目錄及目錄下的所有檔案
其實這個和迴圈遍歷資料夾下的所有檔案類似 但是一些函式不能在這裡用 只能用ftp的函式 下面是程式碼 這個一個ftp類 裡面已經封住好方法 大家呼叫就好 <?php /** * 仿寫CodeIgniter的FTP類 * FTP基本操作: * 1) 登陸;
FileZilla搭建FTP伺服器連線報錯:425 Rejected data connection
最近專案上在用使用FTP傳輸檔案,先是採用了Windows自帶的IIS來配置FTP伺服器,用FTP客戶端工具連線可以但是使用JAVA的FTPClient連線報錯,一直也下不下來檔案,伺服器上日誌也不好看,後面就採用FileZilla來搭建FTP伺服器,介面簡單,使用者配置,
jmeter學習 十 jmeter ftp伺服器連線
jmeter ftp伺服器連線 下載檔案 建立執行緒組-新增-配置元件-FTP請求預設值 執行緒組-新增-sampler-ftp請求 put上傳檔案和get差不多,選擇方式為get 在local file content 選擇上傳的檔案 新增一個監控器-執行緒組-新增-
FTP伺服器安裝及配置檔案設定 (阿里雲ESC )
一、簡介 FTP(檔案傳輸協議)全稱是:Very Secure FTP Server。 Vsftpd是linux類作業系統上執行的ftp伺服器軟體。 vsftp提供三種登陸方式:1.匿名登入 2.本地使用者登入 3.虛擬使用者登入vsftpd的特點:1.較高的安全性需求 2.頻寬的限制 3
centos7安裝SSH遠端連線伺服器及FTP伺服器
SSH遠端伺服器 1.關閉firewalld防火牆 執行命令:systemctl stop frewalld.service 2.禁用firewalld防火牆 執行命令:systemctl disa
【VB.NET】利用純真IP數據庫查詢IP地址及信息
ipv targe expr ext 不支持 分享 回收 sys 部分 幾年前從某個博客抄來的,已經忘記原地址了,如果需要C#版的,可以在博客園搜到吧。我因為自己用,所以轉換為了VBNET代碼,而且也放置了很久,今天無意間翻出來,就分享給大家吧。 首先,先下載 純真數據庫
vb.net 使用ip查詢(Host Name)(WorkGroup Name)(MAC Address)-運用cmd及nbtstat命令
cmd命令 nat start line shell 語句 owin app tst Sub nbtstat(ByVal ip As String) Dim strRst, strRst1, strRst2, strRst3 As String
VB.NET 檢查 網路連線
Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal&nbs
伺服器連線狀態圖
1.可以使用zabbix拓撲圖實現 參考官方文件:https://www.zabbix.com/documentation/3.4/zh/manual/config/visualisation/maps/links 2.使用cacti外掛Weathermap實現 參考部落格:http
zookeeper中伺服器的角色及狀態
使用zookeeper的專案中,zookeeper都是叢集形式部署的,而zk服務又分為不同角色來執行不同的任務。 在區分zk伺服器角色之前,需要解釋幾個概念: 1.事務請求: 在zk中,那些會改變伺服器狀態的請求稱為事務請求(建立節點、更新資料、刪除節點、建立會話
win7 自帶ftp功能搭建ftp伺服器及解決方案
網路上有很多教程,故此,我會把搭建過程中經常遇到的問題放到最後,以便觀摩。 一:.搭建ftp伺服器 二:問題及解決方案 一 1.開啟此處 2.開啟ftp伺服器,勾選Internet服務及ftp伺服器如下圖,確定儲存 3.開啟管理,
FileZilla連線不上ftp伺服器
在伺服器上都已經進行設定過,本地測試也能進行連線。 到FileZilla上 what the fack? 百度各種方法,一個上午過去。。。死活就是連不上。 最後解決方式就是:將超時秒數增加(或者置為0),問題解決。 心頭頓時千萬只草泥馬奔騰而過。
linux下常用FTP命令 1 連線ftp伺服器
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
windows平臺下建立HTTP站點及FTP伺服器站點
基於win平臺下搭建一個ftp,或http伺服器站點,可以方便的實現檔案共享。 比如FTP站點: 基於視窗的訪問:ftp://192.168.1.202/ 基於web的訪問: HTTP站點訪問:
c#如何在FTP伺服器上下載資料夾及子資料夾中的檔案
c#從FTP伺服器上下載資料夾及子資料夾中的檔案需要三個步驟。 1.單個檔案的下載 /*adss表示存放到本地的路徑名,ftpadss表示從FTP伺服器下載的路徑名*/ public void downLoad(string adss, string ftpadss) &n
【計算機通訊】FTP伺服器:主機環境配置+Serv-U安裝與破解+常見問題及解決方法
搭建FTP伺服器,這事並不困難,照著下述步驟做,你也可以成為伺服器大神!!! 第一步,瞭解FTP的功能以及工作原理 這位博主寫得很通俗易懂,我就不班門弄斧了 第二步,主機環境配置 1.控制面板>程式>啟用或關閉Windows功能>… 照
C# 無法向會話狀態伺服器發出會話狀態請求。請確保 ASP.NET State Service (ASP.NET 狀態服務)已啟動"問題解決方法
異常詳細資訊: System.Web.HttpException: 無法向會話狀態伺服器發出會話狀態請求。請確保已啟動 ASP.NET State service,並且客戶端和伺服器埠是相同的。如果伺服器位於遠端計算機上,請檢查 HKEY_LOCAL_MACHINE\SYST
遠端連線ftp伺服器問題總結:例如“伺服器發回了不可路由的地址,使用伺服器地址代替。”
阿里新購買的伺服器,需要遠端連線上傳下載檔案,於是使用filezilla客戶端連線,發現連線不上。 分析原因:可能是埠沒有開放。 阿里雲登入,遠端連線伺服器,輸入指令 netstat -nltp|grep 21 查詢埠資訊,出現如下反饋: 原因是伺服器沒有搭建f