telenetでデーター集信


Fuzy  2004-01-19 17:01:10  No: 81552  IP: [192.*.*.*]

LAN 接続で繋がっている機器にtelnetでアクセスし、パスワード入力、コマンドインプット後データーをダウンロードする一連の作業をVBで作りたいのですが、可能でしょうか?当方VBは初めてですので手取り足取りお願い致します。

編集 削除
さんちょ  2004-01-19 18:23:34  No: 81553  IP: [192.*.*.*]

FTPじゃだめなのでしょうか?
百倍楽にプログラムできるし、VBとFTPに関してGoogleで検索すれば
いっぱい参考になる文献があると思いますよ。

編集 削除
岡田 之仁  2004-01-20 02:43:45  No: 81554  IP: [192.*.*.*]

ソケット通信で行うのも可能ですが・・・

楽に作るなら、やはりBASP21を使ってTELNET
した方が簡単です。

因みにこんな感じ・・・

Option Explicit

Private Const Camera = "192.168.0.1"
Private Const User = "admin"
Private Const Pass = ""

Private Basp21 As Object

Private Sub Command1_Click()

    Dim ret As Long
    Dim szData As Variant
    Dim szCode As String
    Dim startTime As Single
    
    ret = Basp21.Connect(Camera, 23, 20)
    If ret <> 0 Then
        MsgBox "接続タイムアウト等エラ−", vbInformation + vbOKOnly, "BASP21 TELNET"
        Exit Sub
    End If
    
    ' 接続直後のメッセージの読み出し
    Do
        DoEvents
    Loop While Basp21.read(szData, 16) <> 0
    ret = Basp21.readLine(szData)
    
    ' Login処理
    Do
        ' 受信待ち
        Do
            DoEvents
            ret = Basp21.read(szData, 16)
        Loop While ret <> 0
        ret = Basp21.read(szData, 0)
        
        Select Case Trim$(szData)
        Case "User:"
            ' UserID送信
            szData = User
            ret = Basp21.Write(szData)
            szData = Chr$(&HD)
            ret = Basp21.Write(szData)
            szData = Chr$(&HA)
            ret = Basp21.Write(szData)
    
        Case "Password:"
            szData = Pass
            ret = Basp21.Write(szData)
            szData = Chr$(&HD)
            ret = Basp21.Write(szData)
            szData = Chr$(&HA)
            ret = Basp21.Write(szData)
        Case "User Logged In" & Chr$(13) & Chr$(10)
            Exit Do
        Case "Invalid Password" & Chr$(13) & Chr$(10)
            DoEvents
        End Select
    
        startTime = Timer
        Do
            DoEvents
        Loop While Timer - startTime < 0.1
    
    Loop While True

    ' JOB処理

    ' TELNET終了
    ret = Basp21.Close
    
End Sub

Private Sub Command2_Click()

    Me.Hide
    Unload Me
    
    Set Form1 = Nothing
    
    End
    
End Sub

Private Sub Form_Load()

    Set Basp21 = CreateObject("basp21.socket")

End Sub

Private Sub Form_Unload(Cancel As Integer)

    Set Basp21 = Nothing

End Sub

※  これは、ネットワーク上のCCDカメラにTELNETで
    アクセスして、制御を行うテストを行った際のものです。
    たまたまCCDカメラにTELNET機能が搭載されてい
    たので、使ったのですが・・・

ご参考までに・・・

以上。

編集 削除