C#(Tcp…による通信)
最終目的
- Server・Client型通信を実現する非ビジュアルコントロールの提供
C#によるTCP通信の基本
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();
}
最終更新:2010年04月22日 17:26