Why doesn't work recv()?

that’s my code
i use singleton class and that gives FSocket;
i saw connect server, and sending to server.
but, when server sends to unreal client, client doesn’t receive.

server use tcp, and send data like broadcast
use ubunt14.04 LTS, gcc 4.8.
and i use telnet client, that’s good work in sending and receive.

i was seen tcp listener and receiver in wiki but doesn’t work to me.
please help me…

void ASokectTestGameMode::Tick(float pDelta){
Super::Tick(pDelta);

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

uint8 buffer = 0;

if (Socket == NULL){
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Socket Null"));
}
else{
	if (GEngine)
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("IS Socket"));
}

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



//bool ReciveSucce = Socket->Recv(&buffer, 10, sent, ESocketReceiveFlags::Peek);

if (GEngine && successful)
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Send Data for Sever"));

uint8 data[100000]; int32 size2 = sizeof(data); int32 bytes_read = 0;// = NULL;

int32 newSize = 0;
Socket->SetReceiveBufferSize(size2, newSize);
Socket->SetRecvErr(true);
uint32 ps=5;
Socket->HasPendingData(ps);

if (GEngine)
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::Printf(TEXT("pending data %f Bytes %d"), ps,newSize));


bool ReciveSucce = Socket->Recv(data, size2, bytes_read);
//uint32 Size2;
//TArray<uint8> ReceivedData;
//Socket->HasPendingData(Size2);
//ReceivedData.Init(FMath::Min(Size2, 65507u));
//int32 Read = 0;
//bool ReciveSucce = Socket->Recv(ReceivedData.GetData(), ReceivedData.Num(), Read);

if (GEngine)
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::Printf(TEXT("Socket Recv %f Bytes"), data));

if (ReciveSucce){
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Recv Data for Sever"));
}


//if (GEngine)
//	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::Printf(TEXT("Socket Recv %f Bytes"), ReceivedData.GetData()));

//if (ReciveSucce){
//	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Recv Data for Sever"));
//}

if (bytes_read <= 0)
{
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, FString::Printf(TEXT("bytesread : %f"), bytes_read));
}



//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Data Bytes Read ~> %d"), ReceivedData.Num()));
//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Data Bytes Read ~> %d"), ReceivedData.Num()));

//const std::string cstr(reinterpret_cast<const char*>(ReceivedData.GetData()), ReceivedData.Num());

//const FString ReceivedUE4String = cstr.c_str();
//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("As String Data ~> %s"), *ReceivedUE4String));

}