Multithreading

10/22/2012 18:02 szymek111#1
Hi i have q how i create a multithread socket for this code ?

Code:
#pragma comment(lib,"ws2_32.lib")
#include <WinSock2.h>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <string>
#include <sstream>
#include "TwojeImie.h"
using namespace std;

std::string decrypt(std::string str,int size);
std::string EncryptLoginPacket(std::string str);
std::string GetPasswordString(std::string str);

void main()
{
WSAData wsa;
WORD Version = MAKEWORD(2,1);
WSAStartup(Version, &wsa);

SOCKET Listen = socket(AF_INET, SOCK_STREAM, 0);
SOCKET Connect = socket(AF_INET, SOCK_STREAM, 0);

SOCKADDR_IN Server;

char ip[14] = "5.211.100.16";
int port = 4001;
Server.sin_addr.s_addr = inet_addr(ip);
Server.sin_family = AF_INET;
Server.sin_port = htons(port);

bind(Listen, (SOCKADDR*)&Server, sizeof(Server));

listen(Listen, 1);
int size = sizeof(Server);

std::cout << "--------------------------------------------------------------------------------"
<< "" 
<< " Server connected." << std::endl
<< " Host: " << ip << " : " << port << std::endl
<< "--------------------------------------------------------------------------------" << std::endl;






for(;;){
if(Connect = accept(Listen, (SOCKADDR*)&Server, &size)){
std::cout << "Connection accepted from: " << inet_ntoa(Server.sin_addr) << std::endl;
int sizes;
char recvbuf[512];
sizes = recv(Connect,recvbuf,512,0);
std::string Packet;
for(int i =0; i < sizes;i++){Packet += (int)recvbuf[i] - 0xf ^0xc3;}
std::cout << Packet << std::endl;

std::string fail = "NsTest 7998 5.211.100.16:1337:0:1.0.NosPriv -1:-1:-1";
send(Connect,EncryptLoginPacket(fail).c_str(), EncryptLoginPacket(fail).length() +1,0);



}

}

WSACleanup();
std::cin.get();




std::string fail = "Złe ID lub Hasło";
send(Connect,fail.c_str(),fail.size(),0);


}


std::string decrypt(std::string str,int size)
{
    std::string decrypted_string;

    for (int i = 0; i < size; i++) { decrypted_string += str[i] - 0xF ^ 0xC3; }

    return decrypted_string;
}

std::string EncryptLoginPacket(std::string str)
{
	std::string encrypted_string;

	for (int i = 0; i < str.length(); i++) { encrypted_string += str[i] + 0xF; }

	return encrypted_string += 0x19;
}

std::string GetPasswordString(std::string str)
{
	std::string decrypted_string;
	int count = 1;
	int convert;

	if (str.length() %2 == 0)
	{
		str.erase(0, 3);
	} else
	{
		str.erase(0, 4);
	}

	for (int i = 0; i < str.length(); i+=2)
	{
		decrypted_string += str[i];

		if (count %2 == 0)
		{
			decrypted_string += ' ';
		}
		count++;
	}

	std::stringstream ss(decrypted_string);
	decrypted_string.clear();

	while (ss >> std::hex >> convert)
	{
		decrypted_string.push_back(convert);
	}

	return decrypted_string;
}
??
10/22/2012 18:38 Demon-777#2
[Only registered and activated users can see links. Click Here To Register...]

Hope this helps.
10/29/2012 23:47 hound1#3
Well what part do you want to be threaded?
10/30/2012 08:19 szymek111#4
all?For accepting connections :|
10/30/2012 11:40 Tyrar#5
magic word: "select"
10/30/2012 13:19 .SkyneT.#6
Did you even try it ?
I don't see anything related to multithreading
in your piece of code.

And don't forget to use the [CODE] - tags.
11/17/2012 01:03 bloodx#7
You can learn Multithreaded without Copy & Paste!
11/17/2012 11:27 szymek111#8
Guys gave me the tutorial please :( . :confused:
11/17/2012 12:43 bloodx#9
Giv me 100€ ok or no?