Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146

    [c++] Socket

    Qualcuno può spiegarmi come si crea una socket passo a passo???

  2. #2
    Dipende dal sistema operativo sul quale vuoi usare i socket, non ci sono librerie standard. Per le guide basta usare google.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Lo so ma non capisco i singoli metodi.
    Ci sono cose differenti da fare rispetto ai linguaggi di alto livello.
    Cmq uso windows.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    146
    Mi basterebbe che qualcuno commentasse nei minimi dettagli questo codice che ho trovato(in rete) e ho cercato di minimizzare.
    Mi piacerebbe che qualcuno commentasse sopreattutto la parte server relativa a qule ip interfacciarsi e a cosa serve la variabile p.
    Server:
    codice:
    #include <windows.h>
    #include <winsock.h>
    #include <stdio.h>
    #define MAX_STRING 256
    
    int main(int argn,char **argv){
    	SOCKET miosock,client;
    	struct sockaddr_in miosock_addr,client_addr;
    	WSADATA data;
    	WORD p;
    	int len(char *);
    	int lun, err=0;
    	p=MAKEWORD(2,0);
    	
    	
    	err=WSAStartup(p,&data);
    
    	
    	miosock=socket(AF_INET,SOCK_STREAM,0);
    	miosock_addr.sin_family=AF_INET;
    	miosock_addr.sin_port=htons(atoi("1111"));
    	miosock_addr.sin_addr.s_addr=INADDR_ANY;
        	err=bind(miosock,(struct sockaddr*)&miosock_addr,sizeof(struct sockaddr_in));
    	err=listen(miosock,1);
    	lun=sizeof (struct sockaddr);
    	client=accept(miosock,(struct sockaddr*)&client_addr,&lun);
    	if (err!=0) printf ("Errore connessione");
    	
    	//**************dialogo***************//
    	
    	
    	char mex[2000];
     	recv(client,mex,2000,0);
        printf("%s\n\n",mex);
        
    	
    	closesocket (client);
    	closesocket(miosock);
    
    	WSACleanup();
    	
    
    	getchar();
    	
    	return 0;
    }
    Client:
    codice:
    #include <windows.h>
    #include <winsock.h> //includo le varie librerie tra cui quella winsock
    #include <stdio.h>
    
    int main(int argn,char **argv)
    {
        
        int err = 0;
        
    SOCKET sock; // creo la socket chiamato sock che userò nella connessione
    struct sockaddr_in sock_addr; // inizializzo la socket
    WSADATA data;  // inizializzo la variabile che contiene le primitive di Winsock
    WORD p;
    p=MAKEWORD(2,0);  // creo la variabile p che contiene la versione della wsock32.dll
    
    char messaggio[2000];
    int errori = 0;
    
    
    err = WSAStartup(p,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori
    
    
    
    sock=socket(AF_INET,SOCK_STREAM,0);  // creo la socket indicandone le caratteristiche
    sock_addr.sin_family=AF_INET; // indico il protocollo utilizzato (TCP/IP)
    sock_addr.sin_port=htons(1111); //indico la porta a cui connettere la socket
    sock_addr.sin_addr.S_un.S_un_b.s_b1=127; // indico l'indirizzo IP
    sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
    sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
    sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
    
    err = connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); // mi connetto all'indirizzo scelto
     
     //*********************dialogo***********************//
              
    
     	 	
     	 	printf("commands> ");
     	 	gets(messaggio);
            errori = send(sock,messaggio,2000,0);
     	
            if (errori == 2000){
    		   printf("2000 comando:  %s\n",messaggio);
            }
            else {	
                 printf("errore send() %d\n" ,errori); 
            }
    		
    
     
    closesocket(sock);  // chiudo la socket
    WSACleanup();       //libero le risorse utilizzate dalla libreria Winsock
    printf("\n\n%d\n",err);
    
    getchar();
    return 0;
    }

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.