Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by asdasda ( 16 years ago )
#pragma comment( lib, "ws2_32.lib" )
#include <WinSock2.h> //Reihenfolge beachten!!
#include <Windows.h>
//#include <stdio.h>
#include <iostream>
using namespace std;
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa;);
}
int main(int argc, char* argv[])
{
long rc;
SOCKET accep_Socket;
SOCKET conn_Socket;
SOCKADDR_IN addr;
//Winsock starten
rc=startWinsock();
if(rc != 0)
{
cout << "Fehler: startWinsock, Fehler code: " << WSAGetLastError() << endl;
}
else
{
cout << "Winsock gestartet!" << endl;
}
//Socket erstellen
accep_Socket=socket(AF_INET, SOCK_STREAM, 0);
if (accep_Socket==INVALID_SOCKET)
{
cout << "Fehler: Socket konnte nicht erstellt werden, Fehler code: " << WSAGetLastError() << endl;
}
else
{
cout << "Socket wurde erfolgreich erstellt!" << endl;
}
memset(&addr;, 0, sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(12345);
addr.sin_addr.s_addr=ADDR_ANY;
rc=bind(accep_Socket,(SOCKADDR*)&addr;, sizeof(SOCKADDR_IN));
if(rc==SOCKET_ERROR)
{
cout << "Fehler: bind, Fehler code: " << WSAGetLastError() << endl;
}
else
{
cout << "Socket an Port 12345 gebunden!" << endl;
}
rc=listen(accep_Socket, 10);
if (rc==SOCKET_ERROR)
{
cout << "Fehler, listen, Fehler code: " << WSAGetLastError()<< endl;
return 1;
}
else
{
cout << "Server ist nun im Listen-Modus..." << endl;
}
conn_Socket=accept(accep_Socket, NULL, NULL);
if(conn_Socket==INVALID_SOCKET)
{
cout << "Fehler, accept, Fehler code: " << WSAGetLastError() << endl;
return 1;
}
else
{
cout << "Verbindung wurde hergestellt!" << endl;
}
//Daten austauschen
char buf[256];
char buf2[300];
while(rc != SOCKET_ERROR)
{
cout << "Nachricht bitte eingeben [max 256] : " ;
char testn[256];
cin >> testn;
rc=send(conn_Socket,testn,strlen(testn),0);
rc=recv(conn_Socket, buf, 256,0); /// TIMER?!?
if(rc==0)
{
cout << "Der Server hat die Verbindung getrennt..." << endl;
break;
}
if(rc==SOCKET_ERROR)
{
cout << "Fehler, recv, Fehler code: " << WSAGetLastError() << endl;
break;
}
buf[rc]='\0';
cout << "Client: " << buf << endl;
//sprintf("Du mich auch %s\n", buf);
}
closesocket(accep_Socket);
closesocket(conn_Socket);
WSACleanup();
system("pause");
return 0;
}
Revise this Paste