Hi Leute,
ich habe mich mit Sockets bisher nur unter .NET auseinander gesetzt und bin nun unter C/C++ mit dem Thema etwas auf die Nase gefallen. Ich will einen Server (wofür ist jetzt erstmal unerheblich) unter C++ aufsetzen und mich mit einem Client, der in C# geschrieben ist, verbinden. Was ich mache ist in etwa folgendes (ich hab zur besseren Lesbarkeit die Fehlerabfragen herausgenommen, sind aber eigentlich bei jedem Funktionsaufruf drin.
Das Prog lässt sich kompilieren und auch ausführen, es hört aber nicht auf Port 16000, sondern auf 32830 ab (netstat ist dein Freund). Darunter kann ich mich dann auch mit meinem C#-Prog verbinden. Nun würde ich gerne wissen, wo der Fehler liegt, da ich ja gerne auf dem Port 16000 (oder was ich eben einstelle) abhören möchte und das durch die Zeilen
doch eigentlich eingestellt werden sollte.
Vielen Dank schon für eure Hilfe, Paul
ich habe mich mit Sockets bisher nur unter .NET auseinander gesetzt und bin nun unter C/C++ mit dem Thema etwas auf die Nase gefallen. Ich will einen Server (wofür ist jetzt erstmal unerheblich) unter C++ aufsetzen und mich mit einem Client, der in C# geschrieben ist, verbinden. Was ich mache ist in etwa folgendes (ich hab zur besseren Lesbarkeit die Fehlerabfragen herausgenommen, sind aber eigentlich bei jedem Funktionsaufruf drin.
Code:
WSADATA wsa;
WSAStartup(MAKEWORD(1, 1), &wsa);
SOCKET sock = socket(PF_INET, SOCK_STREAM, 0);
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_port = 16000;
sa.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
bind(sock, (struct sockaddr*)&sa, sizeof(sa));
listen(sock, 3);
while(running)
{
SOCKET client;
cout << "Warte auf Verbindung" << endl;
client=accept(sock, NULL, 0) ;
cout << "Connection accepted!" << endl;
}
Das Prog lässt sich kompilieren und auch ausführen, es hört aber nicht auf Port 16000, sondern auf 32830 ab (netstat ist dein Freund). Darunter kann ich mich dann auch mit meinem C#-Prog verbinden. Nun würde ich gerne wissen, wo der Fehler liegt, da ich ja gerne auf dem Port 16000 (oder was ich eben einstelle) abhören möchte und das durch die Zeilen
Code:
sa.sin_port = 16000;
bind(sock, (struct sockaddr*)&sa, sizeof(sa));
doch eigentlich eingestellt werden sollte.
Vielen Dank schon für eure Hilfe, Paul