TCP/IPで通信を行うクラスを作ってみました。
Socketクラスの非同期メソッドをあえて使用せず?・・
TcpClientクラス+Threadクラスで無理矢理非同期を実現してます・・。w
今回はサンプルプログラム・・ではなく、実用性のあるツール(ソース付き)
の公開です。
通信を行うプログラムのため、ファイヤーウォールの警告が出ますが、
使用するためには許可してください。
(疑り深いかたは、サンプルコードをみてから自分でビルドしてちょ)
【主な特徴】
・サーバー(クライアント多数同時接続可)とクライアント(1つ)の機能あり。
・ツールの詳細説明は<こちらのパワポをどうぞ! >
【更新履歴】
・(2014.6.9)
1.クライアントのシンプル表示モードの不具合を修正
2.クライアントからの繰り返し送信中に接続が切れると
エラーでアプリが落ちる不具合を修正
・(2014.6.7)
1.テキストボックスに表示されるログのちらつきを修正
同時にログの最大制限文字数を32,767文字から
4,294,967,295へ拡張
2.ログを一時的に非表示にする機能および、送受信
した文字のみを表示するシンプル表示モードを追加
・(2014.6.2)
1.サーバーが待ち受け終了中にアクセプト済みクライアント
AcceptedClientsが正しく反映されないバグを修正
このバグ修正によりツールで接続しているクライアントが
1つもいないのに接続中の表示になるバグが修正される
・(2014.5.25)
1.切断要求を出した場合CloseTimeoutで設定した秒数以内に、
リモートから切断要求が来ない場合、強制的に切断するように
設計していたが、うまく動いていなかったのを修正
ツール内では
5秒に固定で設定してあるので、
切断要求を出してFinWait2が5秒続いたら
強制的に切断されます。
【ダウンロード】
<ダウンロード > clsTCPを含むTCP診断ツール"TcpTestTool"のコードです。
<ダウンロード > ツールの実行ファイルだけ欲しい方はこちら