Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ MT-multithreading and servers » [SOLVED] TcpSocket Connect error
Re: TcpSocket Connect error [message #42425 is a reply to message #42396] Thu, 13 March 2014 08:43 Go to previous messageGo to previous message
steffen is currently offline  steffen
Messages: 38
Registered: May 2007
Location: Denmark
Member

Here is a patched version of RawConnect, I have NOT tried it with IPv6:
bool TcpSocket::RawConnect(addrinfo *arp)
{
	if(!arp) {
		SetSockError("connect", -1, "not found");
		return false;
	}
	String err;
	for(int pass = 0; pass < 2; pass++) {
		addrinfo *rp = arp;
		while(rp)
		{
			if(rp->ai_family == AF_INET == !pass) // Try to connect IPv4 in the first pass
			{
				if (Open(rp->ai_family, rp->ai_socktype, rp->ai_protocol))
				{
					int r = connect(socket, rp->ai_addr, (int)rp->ai_addrlen);
					if(r != 0)
					{
						if (WaitWrite())
						{
							int optval = 0;
							socklen_t optlen = sizeof(optval);
							if (getsockopt(GetSOCKET(), SOL_SOCKET, SO_ERROR, (char*)&optval, &optlen) == 0)
							{
								if (optval == 0)
									r = 0;
								else
								{
									if(err.GetCount())
										err << '\n';
									err << TcpSocketErrorDesc(optval);
								}
							}
						}
					}
					if (r == 0)
					{
						mode = CONNECT;
						return true;
					}
					if(err.GetCount())
						err << '\n';
					err << TcpSocketErrorDesc(GetErrorCode());
					Close();
				}
			}
			rp = rp->ai_next;
		}
	}
	SetSockError("connect", -1, Nvl(err, "failed"));
	return false;
}

And the output from my connect test is:
Quote:

Test1 Connecting
SUCCESS: No Connection to non existing server.

Test2 Connecting
SUCCESS: No Connection to non existing server.


Regards,
Steffen
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: SSL handshake error
Next Topic: How to use Skylark on external server
Goto Forum:
  


Current Time: Tue Apr 29 18:35:30 CEST 2025

Total time taken to generate the page: 0.00756 seconds