|
分類:[.NET 全般]
サーバーを作成しています(VS2010、C#)
クライアント8軸から13秒ごとに30000データ受取り、受け取ったデータを、表示、保存しています(非同期)
サーバーがAcceptTcpClientで接続待ちしている状態で、クライアントが接続しようとしても107秒程度待たされることがあります 発生頻度:100回に1〜2回程度 発生タイミング:軸によってバラバラ、同じタイミングもある
改善策をご教授お願いします
下記にプログラムを記します
private void Form2_Load(object sender, EventArgs e) { // ワーカースレッドの作成と開始 work = new System.Threading.Thread(DoWork); work.Start(); }
public void DoWork() { byte[] rcv_data = new byte[50000]; // リスナーを作成すると開始 server = new TcpListener(IPAddress.Any, 51001); server.Start(); try { while (true) { // クライアントからの接続を受け付ける TcpClient client = server.AcceptTcpClient(); client.ReceiveBufferSize = 50000; NetworkStream stream = client.GetStream(); while (true) { // 受信データの読み出し len = stream.Read(rcv_data, 0, rcv_data.Length); str += System.Text.Encoding.ASCII.GetString(rcv_data, 0, len); if (str.EndsWith("END")) break; //末尾"END"受信完了 } client.Close(); stream.Close(); data_save(); //受信データをテキストファイルに保存 plot(); //グラフ表示 } } catch (Exception ex) { System.Console.WriteLine(ex.Message); } }
|