WILLはネットワークに関するあらゆるソリューションをご提供します。
株式会社ウィル

HOME 新着情報 製品一覧 受託開発 Download 購入方法 トライアル サポート 会社案内

CONNECTクライアントサンプル CONNECT Ver1.0


▼概要   ▼ソースコード  プログラムのダウンロード→

概 要

CONNECTは汎用のインターネットクライアントです。これを用いると、FINGERサーバー、メールサーバー、WHOISサーバーなど、各種のインターネットサーバーに対してコマンドを送ることができます。 CONNECTを利用するには、サーバーのIPアドレスとポート番号が判っている ことと、さらにサーバーの要求するプロトコルの知識が必要です。

例えば、メールサーバーのアドレスが分かっている場合は、サーバーのIPアドレスをいれ、ポート番号を25に設定して接続コマンドを押してみてください。うまく接続できたなら、画面 にサーバーからのメッセージが表示されます。 コマンドとして、HELPを入力して、送信ボタンを押すと、画面 にヘルプが表示されます。QUITを入力して、送信ボタンを押すと、接続がきれます。


▲TOPへ

ソースコード

'(C)COPYRIGHT 1997 WILL
Option Explicit
'接続ボタン
Private Sub Command1_Click()
    'Closedイベントがあがるまで接続ボタンは押せない
    Command1.Enabled = False
    'Connectメソッドをキャンセルできる
    Command2.Enabled = True
    On Error GoTo err1
    'Text1 サーバーのホスト名またはIPアドレス
    'Text4 サーバーのポート番号またはサービス名
    '          7  echo   echoサーバー
    '         25  smtp   smtpサーバー
    '         43  whois  whoisサーバー
    '         79  finger fingerサーバー
    '        110  pop    popサーバー
    Tcpip1.connect Text1, Text4, "0"
    On Error GoTo 0
    Command2.SetFocus
    Exit Sub
    
err1:
    MsgBox Err.Description & "(" & Err.Number & ")", vbExclamation, "Connect"
    Command1.Enabled = True
    Command2.Enabled = False
    Text1.SetFocus
End Sub
'切断ボタン
Private Sub Command2_Click()
    'いつCloseメソッドを実行しても大丈夫。
    Tcpip1.Close
    Text1.SetFocus
End Sub
'送信ボタン
Private Sub Command3_Click()
    'Sendメソッドは文字変数しか受け付けない
    Dim d$
    
    '送信可能状態でない場合には送信できない
    If (Tcpip1.Sendable = True) Then
        'ローカルエコーをする
        'Text2 送信文字列
        'Text3 受信文字列
        Text3 = Text3 & Text2 & vbCrLf
        'サーバーはUnicode文字を受け付けないだろう
        '改行コードは CR LF と決まっている
        d = StrConv(Text2 & vbCrLf, vbFromUnicode)
        Tcpip1.Send d
    Else
        MsgBox "まだ送信できる状態にありません", vbExclamation, "SEND"
    End If
    '次の送信文字列を編集するためにフォーカスを当てる
    Text2.SetFocus
End Sub
'終了ボタン
Private Sub Command5_Click()
    End
End Sub

Private Sub Form_Load()
    'TCPIP.OCXの著作権表示
    Label4 = Tcpip1.copyright
End Sub

'通信が切断された
Private Sub Tcpip1_Closed()
    Command1.Enabled = True
    Command2.Enabled = False
    Command3.Enabled = False
    Text1.SetFocus
End Sub

'サーバーと接続できた
Private Sub Tcpip1_Connected()
    Command3.Enabled = True
    '受信文字列をクリア
    Text3 = ""
    '送信文字列の編集の準備
    Text2.SetFocus
End Sub
'受信した
Private Sub Tcpip1_Received(data As String)
    'サーバーはANSI文字列。これをUnicodeにする
    Text3 = Text3 & StrConv(data, vbUnicode)
    '文末にカーソルを移動
    Text3.SetFocus
    Text3.SelStart = Len(Text3)
    '送信文字列の編集の準備
    Text2.SetFocus
End Sub
'Winsockで非同期処理実行中にエラーが発生した
Private Sub Tcpip1_WsError
(ByVal Ecode As Long, ByVal Description As String, ByVal Where As String, CancelClose As Boolean)
MsgBox Description & "(" & Ecode & ")", vbExclamation, "WsError(" & Where & ")" End Sub Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1) End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) 'IPアドレスを入力してエンターキーが押されたら接続に行く If (KeyAscii = 13) Then KeyAscii = 0 Call Command1_Click End If End Sub Private Sub Text2_GotFocus() Text2.SelStart = 0 Text2.SelLength = Len(Text2) End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) '送信文字列を入力してエンターキーが押されたら送信する If (KeyAscii = 13) Then KeyAscii = 0 Call Command3_Click End If End Sub Private Sub Text4_GotFocus() Text4.SelStart = 0 Text4.SelLength = Len(Text4) End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) 'ポート番号を入力してエンターキーが押されたら接続に行く If (KeyAscii = 13) Then KeyAscii = 0 Call Command1_Click End If End Sub

(C) Copyright 2003 WILL Corporation. All rights reserved.