DOBON.NET DOBON.NETプログラミング掲示板過去ログ

AcceptTcpClientについて

環境/言語:[WindowsXP/VB.NET/.NET Framework1.1]
分類:[.NET]

いつも参考にさせて頂いています。
プログラム暦半年程度の蒼月と言います。

今回、TCPを使ったプログラムを作成することになりまして、こちらの「TCPクライアント・サーバープログラムを作成する」を参考に、TCPサーバーの作成を行いました。
しかし、サンプルプログラムの

Dim tcp As System.Net.Sockets.TcpClient = _
listener.AcceptTcpClient()

の部分で、画面が著しく重くなり、フォームは「応答無し」の状態となってしまいます。
クライアントからの接続を待ちつつ、他の処理は続行させるための良い方法はありませんでしょうか?

以下の2つの方法を試してみたのですが、うまく動作しませんでした。

1.if文の条件にTcpListener メンバ のPending を使い、Trueであれば上記の処理を行うようにした。

2.「1.」のコードをループするようにし、PendingがTrueであれば、上記の処理を、Falseであれば、DoEventsで他の処理を続行するようにした。
接続を保ちつつって言っても、Accept してる間は接続待ちなわけで、それ以前の問題ですが。
.NET 1.1 だと Begin 系はないですから、接続待機(Accept 呼び出し)用のスレッドを作る方向でしょうか。
TcpListener の代わりに Socket で BeginAccept って手もありますが。
>Hongliangさん
ご回答ありがとうございます。
結局、最初に書いた、「1.」のif文の処理を、Timerコントロールを使用して何度も呼び出す方法で解決しました。

教えて頂いた、 Socketやマルチスレッドに関しても少し勉強してみようと思います。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板