M
MrCodeMaster
Hey Leute bin neu hier und hab mal eine Frage.
Ich hab eine Server und eine Client Anwendung geschrieben die auch funktioniert! Jetzt hab ich nur das Problem, dass ich Befehle vom Client zum Server schicken will.
Ich möchte beim Client einen System Befehl eingeben den am Server empfangen und dann ausführen lassen.
Das funktioniert mit system(befehl) aber da sagt er mir immer, dass die Variable vom Typ const char* nicht mit char kompatibel ist. Und er sendet auch keinen Befehl übers Netzwerk.
Ich geb euch mal meinen Code und hoffe auf Antworten.
Server:
Client:
Natürlich bedanke ich mich auch schon mal im Vorraus für die Bemühungen.
Ich hab eine Server und eine Client Anwendung geschrieben die auch funktioniert! Jetzt hab ich nur das Problem, dass ich Befehle vom Client zum Server schicken will.
Ich möchte beim Client einen System Befehl eingeben den am Server empfangen und dann ausführen lassen.
Das funktioniert mit system(befehl) aber da sagt er mir immer, dass die Variable vom Typ const char* nicht mit char kompatibel ist. Und er sendet auch keinen Befehl übers Netzwerk.
Ich geb euch mal meinen Code und hoffe auf Antworten.
Server:
Code:
#include "headerdateien.h"
using namespace std;
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
int startWinsock();
int main(void)
{
long rc;
SOCKET acceptSocket;
SOCKADDR_IN addr;
SOCKET connectedSocket;
rc = startWinsock();
if(rc!=0)
{
cout << "Fehler: startWinsock, Fehlercode: "<< rc << endl;
system ("PAUSE");
return 1;
}
else
{
cout << "Winsock gestartet\n";
system("PAUSE");
}
acceptSocket=socket(AF_INET,SOCK_STREAM,0);
if (acceptSocket==INVALID_SOCKET)
{
cout << "Fehler der Socket konnte nicht erstellt werden, Fehlercode: " << WSAGetLastError() << endl;
system("PAUSE");
return 1;
}
else
{
cout << "Socket erstellt\n";
system ("PAUSE");
}
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(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
if(rc==SOCKET_ERROR)
{
cout << "Fehler: bind, fehler code:" << WSAGetLastError << endl;
system("PAUSE");
return 1;
}
else
{
cout << "Socket an port 12345 gebunden\n";
system ("PAUSE");
}
rc = listen(acceptSocket,10);
if (rc==SOCKET_ERROR)
{
cout << "Fehler: listen, fehler code: " << WSAGetLastError() << endl;
system("PAUSE");
return 1;
}
else
{
cout << "acceptSocket ist im listen Modus...\n";
system("PAUSE");
}
connectedSocket=accept(acceptSocket,NULL,NULL);
if(connectedSocket==INVALID_SOCKET)
{
cout << "Fehler: accept, fehler code: " << WSAGetLastError()<<endl;
system("PAUSE");
return 1;
}
else
{
cout << "Neue Verbindung wurde akzeptiert!\n";
}
system (hier soll der Empfangene Befehl rein kommen); // wie empfange ich Befehle****
return 0;
}
Client:
Code:
#include "headerdateien.h"
using namespace std;
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
SOCKADDR_IN addr;
rc=startWinsock();
if(rc!=0)
{
cout << "Fehler: startWinsock, fehler code: " << rc << endl;
system("PAUSE");
return 1;
}
else
{
cout << "Winsock gestartet!\n";
system("PAUSE");
}
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
cout << "Fehler: Der Socket konnte nicht erstellt werden, fehlercode: "<< WSAGetLastError()<< endl;
system("PAUSE");
return 1;
}
else
{
cout << "Socket erstellt!\n";
system("PAUSE");
}
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
rc = connect(s,(SOCKADDR*)&addr, sizeof(SOCKADDR));
if (rc==SOCKET_ERROR)
{
cout << "Fehler: connect gescheitert, fehler code: "<< WSAGetLastError<< endl;
system("PAUSE");
return 1;
}
else
{
cout << "Verbunden mit 127.0.0.1..\n";
system ("PAUSE");
}
//hier soll er die Befehle mit cin einlesen und weitersenden aber wie****
return 0;
}
Natürlich bedanke ich mich auch schon mal im Vorraus für die Bemühungen.