- Mesaj
- 1.305
- Çözümler
- 41
- Beğeni
- 1.085
- Puan
- 1.309
- Ticaret Puanı
- 0
C++:
Locale_inch ekle:
#define ENABLE_CONNECT_FIX
Eterlib/NetStream.cpp içinde bul:
if (connect(m_sock, (PSOCKADDR)&m_addr, m_addr.GetSize()) == SOCKET_ERROR)
{
int error = WSAGetLastError();
if (error != WSAEWOULDBLOCK)
{
Tracen("error != WSAEWOULDBLOCK");
Clear();
OnConnectFailure();
return false;
}
}
Değiştir:
#ifdef ENABLE_CONNECT_FIX
if (connect(m_sock, reinterpret_cast<PSOCKADDR>(&m_addr), m_addr.GetSize()) == SOCKET_ERROR)
{
int error = WSAGetLastError();
if (error != WSAEWOULDBLOCK)
{
Sleep(1000);
Clear();
m_sock = socket(AF_INET, SOCK_STREAM, 0);
if (m_sock == INVALID_SOCKET)
{
Clear();
OnConnectFailure();
return false;
}
ioctlsocket(m_sock, FIONBIO, &arg);
if (connect(m_sock, reinterpret_cast<PSOCKADDR>(&m_addr), m_addr.GetSize()) == SOCKET_ERROR)
{
Tracen("error != WSAEWOULDBLOCK");
Clear();
OnConnectFailure();
return false;
}
}
}
#else
if (connect(m_sock, (PSOCKADDR)&m_addr, m_addr.GetSize()) == SOCKET_ERROR)
{
int error = WSAGetLastError();
if (error != WSAEWOULDBLOCK)
{
Tracen("error != WSAEWOULDBLOCK");
Clear();
OnConnectFailure();
return false;
}
}
#endif