|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
[c] socket non bloccante
ho trovato su un sito un codice che permette di inizializzare un socket
Codice:
#if defined(WIN32)
#include <winsock.h>
#define close closesocket /* per utilizzare close al posto di closesocket */
int init_winsock(void){ /* Inizializzazione winsock */
WSADATA wsadata;
int err;
err = WSAStartup(MAKEWORD(2,2),&wsadata);
if(err != 0){
return 0;
}
else return 1;
}
int sd, port;
char ip[17], buffer[256],port_str[4];
struct sockaddr_in saddr;
#elif defined(unix)
#include <arpa/inet.h>
#include <sys/socket.h>
#define init_winsock() 1 /* su unix questa condizione sarà sempre vera */
#define closesocket close /* se nel codice si trova closesocket si chiamerà close */
#define WSACleanup() ; /* su Unix WSACleanup = istruzione vuota */
#endif
è possibile modificare il codice affinche le due funzioni diventino non bloccanti oppure è possibile far diventare non bloccante una funzione recv o send all'interno senza modificare il codice che ho postato? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
ho risolto aggingendo al programma il seguente codice
Codice:
u_long imode=1; //creo un socket non bloccante ioctlsocket(sd,FIONBIO,&imode); |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:08.


















