kostenloser Webspace werbefrei: lima-city


Socket status

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    kiruku

    kiruku hat kostenlosen Webspace.

    Wie kann ich rausfinden in welchem status sich mein socket befindet? ob er verbunden ist oder ob der andere ihn schon geschlossen hat, und z.B. wenn der socket sich schliesst gleich ne message box mit "Socket closed" oder so... es muss doch irgend nen weg geben das zu machen, hab schon gegoogelt nach socket status ermitteln, allerdings nichts gefunden... ich will einfach ne art abfrage "if (socket == connected), oder sowas in der art haben ;/ und ich will auch noch machen das sobald mein socket irgendwie geschlossen wird eine message box angezeigt wird... das problem ist nur, wie mach ich das?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g***h

    Schau mal hier:
    s = socket(AF_INET, SOCK_STREAM, 0);
    	if (s == -1)
    	{
    		perror("socket failed()");
    		.....
    	}
    	
    	srv.sin_addr.s_addr = inet_addr(argv[1]);
    	srv.sin_port = htons( (unsigned short int) atol(argv[2]));
    	srv.sin_family = AF_INET;
    	if (connect(s, &srv, sizeof(srv)) == -1)
    	{
    		perror("connect failed()");
    		...
    	}

    Ich glaube so sollte es gehen. socket gibt immer nur eine art "id" auf den Stream im System zurück. -1 bedeutet dann immer das keiner zugewiesen wurde.
  4. Autor dieses Themas

    kiruku

    kiruku hat kostenlosen Webspace.

    thx, werde mal damit rumexperimentieren, einen timer der die ganze zeit die ID abcheckt und nebenbei öffne ich/schliesse ich das socket vom client aus und nebendran seh ich dann die id... nimmt mich wunder ob sich was ergibt ^^
  5. g***h

    du brauchst sie nicht die ganze Zeit abchecken nur beim erstellen des sockets und beim verbinden musst du checken, sonst nicht.

    Schau mal hier:
    http://www.pc-adviser.de/socket_programmierung.html#client
  6. Autor dieses Themas

    kiruku

    kiruku hat kostenlosen Webspace.

    und wie erfahre ich dann wann das socket geschlossen wird? ich will wissen ob sich was an der socket id ändert wenns vom server geschlossen wird...
  7. g***h

    normaler Weise wenn du Daten sendest oder empfängst. ( read() , write() ) dann wird auch ein -1 zurück gegeben und du kriegst den error per perror().

    Beitrag zuletzt geändert: 13.2.2009 17:39:17 von go2sh
  8. Autor dieses Themas

    kiruku

    kiruku hat kostenlosen Webspace.

    komisch, das socket ist connected, aber wenn ich einen thread mit
    while(1)
    {
    Sleep(10);
    if (bConnected == TRUE) {
    rc = recv...
    if (rc==SOCKET_ERROR) {
    MessageBox
    }
    }
    }
    mache, gibts mir IMMER socket error, und ich kriege jede 10ms ne message box, allerdings kann ich immer noch daten senden mit nem anderen thread und die kommen beim server an....
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!