Oppure

Loading
13/04/07 14:19
kikkoHack
Salve a tutti .... sono un nuovo utente....

Ho un piccolo problema che vorrei cercare di risolvere....

Mi sono da poco avvicinato alla Programmazione delle socket e ho creato due

programmini ( client e server ) che comunicano tra loro su due PC

collegati a internet in maniera differente:

il primo ( 1 ) attraverso connessione wireless;

il secondo ( 2 ) attraverso connessione ethernet ( cavo );

il problema è questo:

quando (1) è client e (2) è server tutto ok!!! la connessione avviene!!!!

nel caso inverso NO.... credo per una questione di Ip ...

CLIENT

//  ****** Inclusione delle Librerie ******

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <winsock.h>
#pragma comment(lib,"Ws2_32.lib")
#define     MB     1024



char mex_ricevuto [MB];

char mex_inviato  [MB]= "CoNnEsSiOnE AvVeNuTa cOn sUcCeSsO\n\n\n-== CLIENT ==- ";

// ****** Funzione main(   )

void main()
{
   WSADATA wsaData;        
   
   SOCKET Sock;                            // Variabili tipo SOCKET
   
   WSAStartup(MAKEWORD(2 ,2), &wsaData);

   /* Creazione socket */
   Sock= socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

  /* Riempiamo la struttura */
   SOCKADDR_IN service;
   service.sin_family            =  AF_INET;
   service.sin_port            =  htons( -porta- );
   service.sin_addr.s_addr     =  inet_addr( "---Indirizzo IP---" );  

   /* Connessione al Server */
   connect( Sock , (SOCKADDR*)&service , sizeof(service) );

   /* Funzione send(   ) */
   send( Sock , mex_inviato , strlen(mex_inviato)+1, 0 );

   /* Funzione recv(   ) */
   int ibyte;
   ibyte = recv( Sock, mex_ricevuto , MB , 0 );  
   printf("%s \n\n",mex_ricevuto);
   printf("Byte ricevuti :\t %d\n\n\n",ibyte);

   /* Chiusura del programma */
   closesocket(Sock);
   WSACleanup();
}



SERVER

//  ****** Inclusione delle Librerie ******

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <winsock.h>
#pragma comment(lib,"Ws2_32.lib")
#define     MB     1024





char mex_ricevuto [MB];

char mex_inviato  [MB]= "CoNnEsSiOnE AvVeNuTa cOn sUcCeSsO\n\n\n-== SERVER ==- ";



// ****** Funzione main(   )

void main()
{
   WSADATA wsaData;                      
   
   SOCKET ServerSocket, ClientSocket;        // Variabili tipo SOCKET
   
   WSAStartup(MAKEWORD(2 ,2), &wsaData);
   
 
   ServerSocket= socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );      

   /* Riempiamo la struttura */
   SOCKADDR_IN service;
   
   service.sin_family            =  AF_INET;
   service.sin_port            =  htons( 4444 );
   service.sin_addr.s_addr     =  INADDR_ANY;
   
   /* Assegnare porta e Ip alla socket  */
   bind( ServerSocket, (SOCKADDR*) &service, sizeof(service));

   /* Mettiti in ascolto per al massimo 1 client */
   listen(ServerSocket,1);

   /* Accettare una nuova connessione... */
   printf( "Aspetto connessione Client...\n\n\n" );
   while(TRUE)
   {
       ClientSocket = SOCKET_ERROR;      
       
       while ( ClientSocket == SOCKET_ERROR )
               ClientSocket = accept( ServerSocket, NULL, NULL );
       
       printf( "Client Connesso\n\n\n");
       break;  
   }

   
   /* Funzione recv(   ) */
   int ibyte;
   ibyte = recv( ClientSocket, mex_ricevuto , MB , 0 );  
   printf("%s \n\n",mex_ricevuto);
   printf("Byte ricevuti :\t %d\n\n\n",ibyte);


   /* Funzione send(   ) */
   send( ClientSocket , mex_inviato , strlen(mex_inviato)+1 ,0);

   
   /* Chiusura del programma */
   closesocket (ServerSocket);
   closesocket (ClientSocket);
   WSACleanup();
}



Anche quando uso Beatrix capita la stessa cosa....


Aiuto!!!!:d:d
Ultima modifica effettuata da kikkoHack 13/04/07 14:21
aaa
19/04/07 19:39
netarrow
sono in lan questi due PC? forse è un problema di router.
aaa
20/04/07 13:08
kikkoHack
Postato originariamente da netarrow:

sono in lan questi due PC? forse è un problema di router.


Grazie per la risposta :k: allora non sono in lan e non uso router...ho provato questa cosa con 2 pc che hanno provider differenti....

:-|:-|:-|:-|
aaa
20/04/07 15:54
nikipe_silver
Non penso sia un problema di socket ma di rete..
Cerca di spiegare meglio come questi 2 computer sono collegati...
aaa
27/04/07 16:36
Shutdown
Lo credo anche io.
aaa