私はVisual Studioを使ってこの小さなTcpServerをプログラムしています。プログラムがハングし、決して与えられない入力を待っています
本当に具体的です。サーバーはポート1234をリッスンし、IP 127.0.0.1にあります 教師は、「接続」をクリックすると、そのIP上のそのポートに接続しようとするプログラムを教えてくれました。他の人のために働いているので、私のコーディングエラーでなければなりません。
私が接続をクリックすると、プログラムはストリーム上で "GET"という単語を送信します。そこにはすでに接続されているIPアドレスのリストと、次にaのみを含む改行が含まれています。私は抜い
は、プログラムは言葉「REM」を送信し、私は単に私がクラスTCPServerのを持っている
(一般的なリストがある)私のリストからあれば削除する必要があります(私たちは私たち自身をしなければなりませんでした) 、メインコードとしてこれを持っている:私の推測では、あなたの問題があることであるということである
public class TcpHelper
{
private TcpClient tc;
private IPEndPoint ipe;
private string get;
private Configuration conf;
public TcpHelper(TcpClient tc, Configuration conf)
{
this.tc = tc;
this.conf = conf;
}
public void Start()
{
using (NetworkStream nws = this.tc.GetStream())
{
using (StreamReader sr = new StreamReader(nws))
{
using (StreamWriter sw = new StreamWriter(nws))
{
this.ipe = (IPEndPoint)tc.Client.RemoteEndPoint;
this.conf.List.Add(this.ipe.Address);
bool conn = true;
while (conn)
{
this.get = sr.ReadLine();//here's the problem
switch (this.get)
{
case "GET":
foreach (IPAddress address in this.conf.Lijst)
{
sw.WriteLine(address.ToString());
}
sw.WriteLine(".");
break;
case "REM":
this.conf.List.Remove(this.ipe.Address);
sw.WriteLine("OK.");
conn = false;
break;
default:
break;
}
}
}
}
}
}
#region Properties
public IPEndPoint Ipe
{
get
{
return this.ipe;
}
}
#endregion
}
お互いにontopステートメントを使用してスタックできます。あなたはナッツのような括弧を入れ子にする必要はありません。 – Will
私は知っている、私は視覚的により魅力的であることがわかります。 – KdgDev