Witam, pisze serwer który po dostaniu wiadomości od jednego komunikatora wysyła do drugiego. Tylko że pojawia się problem z serwerem (komunikator jest na pewno dobry bo był sprawdzany z innym serwerem). Oto kod:

/************************************/// Biblioteki
#include <winsock2.h>
#include <iostream>
#include <windows.h>
#include <conio.h>
/************************************/// Zmienne
WSADATA wsaData;
WORD wersja;
int wynik_operacji;
int blad;
int rozmiar;
SOCKET soc_serwer,soc_klient;
struct sockaddr_in sin;
char bufor[500];
char znak;
/************************************/// Głowny blok programu
int main()
{
	using namespace std;
    ios_base::sync_with_stdio(0);

	wersja = MAKEWORD(2, 0);
	blad = WSAStartup(wersja, &wsaData);

	if(blad != 0) 
	{
		cout << "Blad krtytczny! Nacisniecie dowolnego klawisza spowoduje wylaczenie sie serwera...";
		getch();
		WSACleanup();
		return false;
	}

	if(LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0)
	{
		cout << "Blad zla wersja WinSocket! Nacisniecie dolnego klawisza spowoduje wylaczenie sie serwera...";
		getch();
		WSACleanup();
		return false;
	}

	soc_serwer = socket(AF_INET, SOCK_STREAM, 0); // tworzenie socketa

	memset(&sin, 0, sizeof(sin));
	sin.sin_family = AF_INET; // parametry socketa
	sin.sin_addr.s_addr = INADDR_ANY;
	sin.sin_port = htons(12345);

	if(bind(soc_serwer,(struct sockaddr *)&sin, sizeof(sin))==SOCKET_ERROR)
	{
		cout << "Blad krtytczny! Nacisniecie dowolnego klawisza spowoduje wylaczenie sie serwera...";
        getch();
		WSACleanup();
        return false;
	}

	if(listen(soc_serwer,SOMAXCONN)==SOCKET_ERROR) // przestawienie socketa na nasłuch
	{
		cout << "Blad krtytczny! Nacisniecie dowolnego klawisza spowoduje wylaczenie sie serwera...";
        getch();
		WSACleanup();
        return false;	
	}

	cout << "Serwer gotowy do uzycia, oczekuje na wiadomosci." << endl;	
	while(1==1)
	{
		rozmiar = sizeof(sin);
		if(soc_klient = accept(soc_serwer,(struct sockaddr *)&sin, &rozmiar) != SOCKET_ERROR)
		{
			cout << "Numer x pomyslnie podlaczyl sie do serwera." << endl;
		}

		wynik_operacji = recv(soc_klient,bufor,sizeof(bufor),0);
		cout << bufor;
		if(wynik_operacji != SOCKET_ERROR)
		{
			cout << "Otrzymalem wiadomosc od numeru x do numeru y." << endl;
		}
		else
		{
			cout << "Blad odbierania!";
		}

		if(send(soc_klient,bufor,sizeof(bufor),0) != SOCKET_ERROR)
		{
			cout << "Wyslalem wiadomosc od numeru x do numeru y." << endl;
		}
		else
		{
			cout << "Blad wysylania!";
		}
	
	}
	return 0;
}

Problem jest w tym że zawsze wyświetla blad wyslania i odebrania, z innym serwerem jest ok. Co tutaj może być nie tak ?