Cuai raga ho questo codice che serve a creare un socket server.
Parte, ascolta, non appena gli arriva un messaggio lo riceve e poi mi da il messaggio "Premere un tasto per continuare..." io premo e si chiude... ma perchè? come si fa a lasciarlo li in loop?

Codice PHP:
#include <stdio.h>
#include <winsock.h>
#include <string.h>
  
int main(int argcchar *argv[]){
    
SOCKET listenSocket;
    
SOCKET remoteSocket;
    
SOCKADDR_IN Server_addr;
    
SOCKADDR_IN Client_addr;
    
int sin_size;
    
short port=4000;
    
char indirizzo[]="127.0.0.1";;     
    
char buffer[256];     
    
int wsastartup;
    
int ls_result;
    
WORD wVersionRequested MAKEWORD(2,2);
    
WSADATA wsaData;
    
wsastartup WSAStartup(wVersionRequested, &wsaData);
    if (
wsastartup != NO_ERRORprintf("Error WSAStartup()\n");
     
    
/* Creazione della Socket che si porrà in ascolto di richieste del Client*/
    
listenSocket socket(AF_INETSOCK_STREAMIPPROTO_TCP);
    if (
listenSocket 0)
    
printf("Socket error!\n");
    else 
printf("Server Listenting...\n");
     
    
/* Effettua la bind sull’indirizzo e porta ora specificati */    
    
Server_addr.sin_family AF_INET;
    
Server_addr.sin_addr.s_addr inet_addr(indirizzo);
    
Server_addr.sin_port htons(port);
     
    if (
bind(listenSocket,(LPSOCKADDR)&Server_addr,sizeof(struct sockaddr)) < 0)
    
printf("Server: Bind error.\n");
     
    
/* La socket si pone in "ascolto" tramite la listen() */
    
ls_result listen(listenSocketSOMAXCONN);
    if (
ls_result 0printf("Server: Listen error.\n");
    else 
printf("Socket Listening...\n");
      
    
/* La socket accetta la richiesta di connessione del Client */
    
sin_size sizeof(struct sockaddr_in);
    
remoteSocket accept(listenSocket, (struct sockaddr *)&Client_addr,&sin_size);
    
printf("Accettata Connessione con Client: %s\n",inet_ntoa(Client_addr.sin_addr));
      
    
/* Il Server accetta il messaggio dal Client */
    
recv(remoteSocketbuffersizeof(buffer), 0);
    
printf("Messaggio Arrivato: %s \n"buffer);
      
    
printf("Chiudo il Server");
    
close(remoteSocket);
    
WSACleanup();     
    
system("pause");
    return 
0;

Ho provato anche ad eliminare le utlime 5 linee di codice, con il solo risultato che non mi da il messaggio "Premere un tasto per continuare..." ma si chiude lo stesso... bhoooo