Why won't my socket connection work within a blueprint node?

I got this piece of code off the internet and if I put the contents in a constructor, it connects to my server.
If it put the contents in a blueprint node, and call it by Begin Play, it fails to connect. Why?

UFUNCTION(BlueprintCallable, Category = ServerAPI, meta = (FriendlyName = "Connect To Server"))
virtual void ConnectToServer(FString address = "121.0.0.1", int32 port = 1337);


void AServerAPI::ConnectToServer(FString address, int32 port)
{
	Logger::log("Connect to server", address, port);

	Socket = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateSocket(NAME_Stream, TEXT("default"), false);

	FIPv4Address ip;
	FIPv4Address::Parse(address, ip);

	TSharedRef < FInternetAddr > addr = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateInternetAddr();
	addr->SetIp(ip.GetValue());
	addr->SetPort(port);

	bool connected = Socket->Connect(*addr);

	Logger::log("Connected status: ", address, port, connected);

	if (connected == false)
	{
		return;
	}

	FString serialized = TEXT("loadPlayer|1");
	TCHAR *serializedChar = serialized.GetCharArray().GetData();
	int32 size = FCString::Strlen(serializedChar);
	int32 sent = 0;

	bool successful = Socket->Send((uint8*)TCHAR_TO_UTF8(serializedChar), size, sent);

	Logger::log("Send message status: ", successful);
}

I could only get UDP working in 4.3

Socket = ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateSocket( NAME_DGram, TEXT( "RamaTCPSender" ) );

No matter what I did I could not get NAME_Stream / TCP to work!

:slight_smile:

Rama