fortgeschrittener Anfänger: Socket Probleme
-
Hallo
Ich hab ein paar Probleme mit Sockets:
Hab mir das tut von http://www.zotteljedi.de/socket-tipps.html geholt und folgendes ist los:Mein Code:
#include <windows.h> #include <string.h> #include <iostream> #include <fstream.h> #include <iostream.h> #include <sys/types.h> #include <winsock.h> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // Sockets Anschalten: <---- Ist das richtig??? { WSADATA wsa; if (WSAStartup(MAKEWORD(1, 1), &wsa)) { printf("WSAStartup() failed, %lu\n", (unsigned long)GetLastError()); return EXIT_FAILURE; } } //Socket erzeugen int as = socket(AF_INET, SOCK_STREAM, 0); //Falls kein Socket erstellt worden konnte: if (as == -1) { perror("socket() failed"); return 1; } listen(as, 3) ; // <-- Muss ich das noch machen, nachdem es doch schon in der schleife vorkommt..? // Er gibt nach programmende immer 3 zurück..warum? if (listen(as, 3) == -1) { perror("listen () failed"); return 3; } // Hier hab ich versucht mich mit mir zu verbinden 127.0.0.1. Problem: Wo tippe ich da Port + IP ein? //int connect(as, &adresse, int addrlen ); return 0; }
Nochwas..wenn ich listen() mache, müsste das programm doch eigentlich mindestens so lange laufen, bis wenigstens einer versucht zu verbinden? oder?
Könnt ihr mir helfen?Anonym001
-
-
ich würd die geschweiften klammern um das winsock starten wech machen, damit die wsa variable dauerhaft existiert.
-
listen musst du nur einmal aufrufen. wenn du einen client annehmen willst, brauchst du accept -> dein tut, unter "6. Grundstruktur eines Servers"
-
connect -> dein tut, unter "5. grundstruktur eines client"
edit:
- sys/types.h is nur wenn du linux machst, du bruachst für dein programm momentan nur windows.h, winsock.h und iostream (und das für perror)
[ Dieser Beitrag wurde am 18.01.2003 um 17:21 Uhr von Korbinian editiert. ]
-
-
ahja hatte ich ja ganz übersehen...danke