Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [C] SOCKET e Multiconnessione

    Ciao ho la necessità di gestire una multiconnessione da parte di un server in modo che i client possano mandare messaggi al server.
    Ho letto qualcosa riguardo al fork() ma non credo che sia utilizzabile su windows in particola su Vs 6, avete qualche consiglio da darmi?
    http://www.navimel.com

    La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!

  2. #2
    Allora hai bisogno di lavorare in multithreading e quindi di usare i threads. Su Unix ne trovi di ottimi (pthreads ad esempio) ma su windows non so proprio come aiutarti.

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  3. #3
    Consulta la documentazione di _beginthread e _endthread sull'MSDN..

    invece di
    codice:
    pid = fork();
    if(pid == -1) 
       /*errore*/;
    if(pid == 0)
      exit(processa_richiesta(socket));
    avrai
    codice:
    thread = _beginthread(processa_richiesta, 0, socket);
    if(thread == -1)
      /*errore*/;
    e la processa_richiesta dovrebbe essere del tipo

    codice:
    void processa_richiesta(void*param)
    {
     SOCKET socket = (SOCKET)param;
     /*
     processa la richiesta
     */
     _endthread();
    }

  4. #4
    ricorda di linkare LIBCMT.LIB al posto di LIBC.LIB, e soprattutto ricorda di non usare funzioni che lavorano con buffer statici, tipo strtok, che non sono threasdsafe

  5. #5
    ok grazie ora ci provo
    http://www.navimel.com

    La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!

  6. #6
    Niente da fare non ci riesco... la parte che mi hai scritto non riesco a farmela riconoscere.
    Ho provato ad utilizzare il CreateThread ma non riesco a capire come posso questo parametro:

    LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function

    mi dai una mano per uno o per l'altro metodo?

    grazie
    http://www.navimel.com

    La disumanità del computer sta nel fatto che, una volta programmato(da me) e messo in funzione, FA QUEL CAZZO CHE VUOLE!!!

  7. #7
    leggi attentamente questo documento, (redatto da un folle :gren: )

    in fondo alla pagina che ti linko trovi anche i corrispettivi
    comandi/funzioni UNIX WINDOWS

    http://members.xoom.virgilio.it/bsd_...erebrolesi.txt
    ...Terrible warlords, good warlords, and an english song

  8. #8
    Originariamente inviato da Navimel
    Niente da fare non ci riesco... la parte che mi hai scritto non riesco a farmela riconoscere.
    Ho provato ad utilizzare il CreateThread ma non riesco a capire come posso questo parametro:

    LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function

    mi dai una mano per uno o per l'altro metodo?

    grazie
    Potresti cercare di essere meno vago? che cosa non funziona?

  9. #9
    Quando uso _beginthread o _endthread mi dice che non sono stati dichiarati, comunque ho usato le librerie giuste che c'erano scritte su msdn.

    Provero' a leggermi la guida Johnny

    Fatemi sapere per il problema sopra grazie
    ...e quando meno te lo aspetti potrebbe capitare qualcosa di bello, di più importante di quello che avevi programmato...

  10. #10
    se non sono dichiarati è perchè non hai incluso <process.h>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.