-1
目前,我正在做一個軟件平臺,爲我自己。我有客戶端和服務器端軟件。我正在使用異步套接字,並且在連接時遇到了一些問題。這是我的連接功能。Conneting到異步插座由於某種原因失敗
private bool ConnectSocket()
{
try
{
if((this.soket != null) && this.soket.Connected)
{
this.soket.Shutdown(SocketShutdown.Both);
Thread.Sleep(10);
this.soket.Close();
return false;
}
this.soket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
System.Net.IPAddress adresa = System.Net.IPAddress.Parse(Properties.Settings.Default.server_ip);
IPEndPoint EndPoint = new IPEndPoint(adresa, 0x9de);
this.soket.Blocking = false;
AsyncCallback callback = new AsyncCallback(this.OnSocketConnect);
this.soket.BeginConnect(EndPoint, callback, this.soket);
if(this.soket.Connected) Console.WriteLine("Uspesno je konektovan socket");
return true;
}
catch(SocketException ex)
{
MessageBox.Show("Dogodila se greska prilikom povezivanja na server");
Console.WriteLine(ex.ToString());
}
return false;
}
即使我沒有連接我的服務器,它會識別(偵聽)我的連接,並且存在某種連接。問題是,我不能從這個點繼續,我不能發送任何數據,因爲我得到一個異常不連接,還我不打算過去的這個if語句。
if(this.soket.Connected) Console.WriteLine("Uspesno je konektovan socket");
任何有關如何解決這件事的建議?
我不小心,我和邏輯運算符做出misstake。但即使在那之後我無法修復它。我設法用[ManualResetEvent的]修復它(https://docs.microsoft.com/en-us/dotnet/framework/network-programming/using-an-asynchronous-client-socket) –
對上,很高興你能弄清楚男人!如果你想出了一個解決方案,一定要接受我的答案或關閉線程,以便在找出答案後不會保持打開狀態。祝你的項目好運! – Chase