Example #1
0
void* ServerThread(void*)
{
	Host server;
	std::string file = "out.log";

	if (server.Listen(0xff)) 
	{
		puts("Server | listening...");

		Host *connectedHost = server.Accept();

		printf("Server | connected to %s on %i\n", connectedHost->GetIPAddress().c_str(), connectedHost->GetPort());
		printf("Server | read: %s\n", connectedHost->Receive().c_str());
		printf("Server | sent: %i bytes\n", connectedHost->Send("Data from server"));
		printf("Server | read: %s\n", connectedHost->Receive().c_str());
		printf("Server | sent: %i bytes\n", connectedHost->Send("Last message from server"));
		printf("Server | file: %s | name: ", connectedHost->ReceiveFile(file) ? "good" : "bad");
		puts(file.c_str());

		if (connectedHost->Disconnect()) puts("Server | connection closed");
		else puts("Server | cannot close connection");

		delete connectedHost;

		if (server.Disconnect()) puts("Server | socket closed");
		else puts("Server | cannot close socket");
	}
	else puts("Server | cannot listen");

	return NULL;
}
Example #2
0
void* ClientThread(void*)
{
	Host client;

	if (client.Connect("localhost", 0xff))
	{
		printf("Client | connected to %s on %i\n", client.GetIPAddress().c_str(), client.GetPort());
		printf("Client | sent: %i bytes\n", client.Send("Data from client"));
		printf("Client | read: %s\n", client.Receive().c_str());
		printf("Client | sent: %i bytes\n", client.Send("Last message from client"));
		printf("Client | read: %s\n", client.Receive().c_str());
		printf("Client | file: %s\n", client.SendFile("in.log") ? "good" : "bad");

		if (client.Disconnect()) puts("Client | connection closed");
		else puts("Client | cannot close connection");
	}
	else puts("Client | cannot connect");

	return NULL;
}