C#(TcpListenerTcpClient)


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

C#(Tcp…による通信)


最終目的

  • Server・Client型通信を実現する非ビジュアルコントロールの提供


C#によるTCP通信の基本

  • Client側
Serverを説明するのに、まずClient側の実装を説明した方がよいかなと

接続先サーバを指定してTcpClientをnewすると接続

tcpClient = new TcpClient("127.0.0.1", "8080");
↑現在、これは古い形式らしい

接続が確立したら、TcpClientを元にストリームを作成
ストリームが出来たら、永久ループで受信を待ち受け(※C1)
永久ループを使用するため、受信待ち受けはスレッドを作成・開始して、別スレッドで待ち受けることになる。

//	各種ストリームを作成
this.networkStream = this.tcpClient.GetStream();
this.streamReader = new StreamReader(this.networkStream, Encoding.UTF8);
this.streamWriter = new StreamWriter(this.networkStream, Encoding.UTF8);

//	スレッドを作成・開始
this.threadClient = new Thread(new ThreadStart(this.ListeningReceive));
this.threadClient.Start();

void ListeningReceive
{
	while (true)
	{
		string _strMsg = this.streamReader.ReadLine();
		if (_strMsg != null)
		{
			//	_strMsgが受信テキスト
		}
	}
}

送信はストリームに書き込む事で実現できる。Flush()で強制的に流すことが出来るそうな。

public bool SendText(string __strMsg)
{
	this.streamWriter.WriteLine(__strMsg);
	this.streamWriter.Flush();
}