基本クライアントプログラム VB編

基本的なクライアントの動作は次のようになります。 なお、ストリームの説明は、ここをクリックください。

  1. 受けたいサービスのサーバに、IPアドレスとポート番号で接続する。 ⇒tcpC=new TcpClient(IPアドレス,ポート番号)
    (この時、サーバーへの送信用のストリーム(sw=StreamWriter)と、受信用ストリーム(sr=StreamReader)を得る。)

  2. 必要に応じてデータを受信し⇒データ = sr.ReadLine()、
    データを送信する⇒sw.WriteLine(データ)。

  3. 接続を閉じるtcpC.Close()
    (先に、サーバーへの送信用(sw)と、受信用ストリーム(sr)を閉じる。)

以下に 文字列を送受信できるサーバーに対して、接続し、
コンソール画面からキー入力した1行を送信して、
サーバーから1行受信してそれを表示し、
接続を閉じるプログラムを示します。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

	Dim ip As String = "192.168.6.54" 'IPアドレスを記憶する変数用意
	Dim port As Integer = 49152	'ポート番号を記憶する変数用意
	Dim enc As Encoding = Encoding.GetEncoding("shift-jis") '送受信したバイト列と文字列の変換を行うオブジェクトを取得
	
	'サーバーへの接続と、サーバーと送受信するためのストリームを取得
	Dim tcpC As TcpClient = New TcpClient(ip, port) 'サーバーに接続
	Dim sw As StreamWriter = New StreamWriter(tcpC.GetStream(), enc) '送信ストリームを生成
	Dim sr As StreamReader = New StreamReader(tcpC.GetStream(), enc) '受信ストリームを生成
	Dim msg As String '文字列を記憶するための変数用意

	'データの送信
	Console.Write("入力>") '画面に表示
	msg = Console.ReadLine() 'キー入力させて、その入力した文字列を、msg に記憶
	sw.WriteLine(msg) '文字列をサーバーへ送信

	'データの受信
	Console.WriteLine("受信データ待ち状態")'画面に表示
	msg = sr.ReadLine()	'サーバーから文字列を受信し、その受信した文字列を、msg に記憶
	Console.WriteLine(msg)'受信文字列を画面に表示

	sw.Close() '送信ストリームを閉じる
	sr.Close() '受信ストリームを閉じる
	tcpC.Close() '接続を閉じる
End Sub

なお上記プログラムソースの先頭で、クラスを使うための次の記述が必要になります。 このImportsは、クラスが属する空間名を指定するものです。

Imports System.Net.Sockets  'TcpClientを使うため
Imports System.Text 'Encodingを使うため
Imports System.IO   'StreamReaderやStreamWriterを使うため