愛するメソッドとお別れ
他の人が見てどうとかは関係なく、とっても自分の思い通りに組みあがった処理を消すときって凄い名残惜しいです。コメントアウトするだけじゃ見難いし・・・。
というわけでここにこのメソッドが生きた証を・・・。
private ContentBlock GetNextContent(List<ContentBlock> pendingContentList, TcpListener tcpListener, IPEndPoint targetEndPoint) { ContentBlock returnContent = null; //まずは未処理のコマンドリストから目的のコマンドを検索 for (int i = 0; i < pendingContentList.Count; i++) { //目的のコマンドが特に指定されていない場合はリストの先頭を返す(i = 0で即抜ける) //コマンドが目的のものである場合はそのコマンドを返す if (targetEndPoint == null || pendingContentList[i].SourceEndPoint == targetEndPoint) { returnContent = pendingContentList[i]; pendingContentList.RemoveAt(i); break; } } //返すコマンドが決定するまで受信を繰り返す while (returnContent == null) { TcpClient client = tcpListener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); BinaryFormatter formatter = new BinaryFormatter(); returnContent = formatter.Deserialize(stream) as ContentBlock; stream.Close(); client.Close(); //受信したコマンドが目的のものでない場合、未処理のコマンドリストに追加して、ループ if (returnContent.SourceEndPoint != targetEndPoint) { pendingContentList.Add(returnContent); returnContent = null; } } return returnContent; }
さて・・・続きを書くか・・・