0
我正在嘗試創建一個程序,以便從網絡上的另一臺計算機發送和接收字符串。只有通過該程序連接在一起的唯一一對計算機。除了第一次連接之外,大部分工作都已完成並完美工作。只有兩臺計算機同時打開程序時才能建立第一個連接。由於另一臺計算機上的服務器不會運行,因此連接將被拒絕。下面是代碼:通過網絡等待連接
public MultiplayerState2(Game1 game)
{
this.game = game;
localIp = GetLocalIP();
server = new TcpListener(IPAddress.Parse(localIp), localPort);
server.Start();
networkingThread = new Thread(getData);
networkingThread.Start();
clientThread = new Thread(connectClient);
clientThread.Name = "Connect Client";
clientThread.Start();
}
void connectClient()
{
while (client == null)
{
try
{
client = new TcpClient(remoteIp, remotePort);
Console.WriteLine("Connected");
clientThread.Abort();
}
catch
{
Console.WriteLine("Waiting for partner");
}
}
}
這裏,connectClient
應該等待來自計算機的連接。但是我得到的唯一結果是waiting for partner
。這是等待連接的正確方法嗎?如果是的話,爲什麼它不起作用?
拋出什麼異常? – FodderZone
@FodderZone這是一個SocketException,這是由客戶端嘗試連接時未調用TcpListener.Start引起的。 – user26830
請抓住SocketException並查找/傳遞ErrorCode。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx – FodderZone