私は現在、自分用のソフトウェアプラットフォームを作っています。私はクライアントとサーバーの両方のソフトウェアを持っています。私は非同期ソケットを使用しており、接続にいくつか問題があります。これが私の接続機能です。何らかの理由で非同期ソケットに接続できませんでした
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");
この問題を解決する方法についてのご意見はありますか?
私は注意を払わなかったし、論理演算子で誤った発言をした。しかし、それでも私はそれを修正することができませんでした。私は[ManualResetEvent](https://docs.microsoft.com/en-us/dotnet/framework/network-programming/using-an-asynchronous-client-socket)で修正することができます –
それを人に理解させるために!あなたが解決策を見つけた場合は、私の答えを受け入れるか、スレッドを閉じて、それを理解した後に開いていないようにしてください。あなたのプロジェクトに幸運を祈る! – Chase