Oppure

Loading
18/06/07 8:34
iGuLy
Questa è la parte del client che quando la faccio partire si chiude subito, però nella compilazione non mi da errori.
//Includo le librerie
#include <stdio.h>
#include <winsock.h>

int bytesInviati;
int bytesRicevuti = SOCKET_ERROR;
char messaggio[32] = "Ciao server!!!";
char recvbuf[32] = "";

//Funzione main
int main()
{
WSADATA wsaData;
SOCKET mysocket;//Creo una variabile socket
int iResult = WSAStartup(MAKEWORD(2 ,2), &wsaData);
if (iResult != NO_ERROR) {
printf("Errore nell'inizializzazione!!!\n";);
system("pause";);
return 0;
mysocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//Do un valore alla socket
if (mysocket == INVALID_SOCKET) {//Mi assicuro che non ci siano errori
printf("Errore alla socket(): %ld\n", WSAGetLastError() );
system("pause";);
return 0;
}
//Creo u nuovo elemento sockaddr per connettermi al server
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("127.0.0.1";);
clientService.sin_port = htons(2000);
if (connect(mysocket, (SOCKADDR*) & clientService, sizeof(clientService)) == SOCKET_ERROR) {
printf("Connessione fallita.\n";);
WSACleanup( );
system("pause";);
return 0;
}
printf("Connesso al server.\n";);
WSACleanup( );
system("pause";);
return 0;
}
bytesInviati = send(mysocket, messaggio, strlen(messaggio), 0 );//Invio il messaggio
printf( "Bytes inviati: %ld\n", bytesInviati );
if ( bytesRicevuti == 0 ||//Controllo che non ci siano errori nel ricevere i dati
(bytesRicevuti == SOCKET_ERROR && WSAGetLastError()== WSAECONNRESET ))
{
bytesRicevuti = recv( mysocket, recvbuf, 32, 0 );
if ( bytesRicevuti == -1 ) {
printf( "Connessione chiusa.\n";);//Si chiude la connessione
system("pause";);
return 0;
}
if (bytesRicevuti < 0) {//Ricevo i dati
printf( "Bytes Ricevuti: %ld\n", bytesRicevuti);
system("pause";);
return 0;
}
}
closesocket(mysocket);//Chiudo la connessione
WSACleanup();
}

Qualcuno può aiutarmi?
aaa
18/06/07 12:49
WARRIOR
Ciao, hai cotrollato sei il messaggio arriva al server? perchè se cosi fosse non ci sarebbero errori nella costruzione.
Una volta inviata la stringa, il server dovrebbe rispondere.....cmq sei sicuro che una volta finita conversazione (stringa/risposta[che puo anche non arrivare]) la connessione fra i due rimanga aperta? :k:

aaa