• Welcome to Valhalla Legends Archive.
 

connecting to a server with TCP (help)

Started by MoNksBaNe_Agahnim, November 19, 2003, 08:35 PM

Previous topic - Next topic

MoNksBaNe_Agahnim

i have two programs, one being a server program and one being the client and im trying to link together and send a file from server to client... them but its not allowing me and i'm not sure why...here are parts of the code. Both programs run with no errors they just won't connect to each other :\\


Client Version:

int YourIP; // holds your ip to be sent to the server
SOCKET mysocket; //your socket
SOCKET mysocket1; // server's socket
mysocket = socket(AF_INET, SOCK_STREAM, 0); //Sets the properties of our socket
WSADATA wsaDAT;  // where the winsock data is stored

system("ipconfig");
cout << endl << endl <<"Your ip is show above " << endl << "Please input that IP address: ";
cin >> YourIP;
SOCKADDR_IN SockAddr;   //this keeps track of the socket's address info
               SockAddr.sin_port = 50;
               SockAddr.sin_family = AF_INET;
               SockAddr.sin_addr.S_un.S_un_b.s_b1 = YourIP;



cout << "Initializing connection...";

if (WSAStartup(MAKEWORD(1,1), &wsaDAT) == 0)
{         


   if(connect(mysocket, (SOCKADDR *)(&SockAddr), sizeof   (SockAddr))    == 0) // connecting to server
 {

 cout << "Connection established, sending request for IP information..." << endl;
 cout << "IP information found and being recieved..." << endl << endl;

  send(mysocket, ip_request, sizeof(ip_request), 0); // sending request for IP info
            
  recv(mysocket1, "ip.txt", sizeof("ip.txt"), 0); // recieving the IP info
            
  cout << "File recieved! "; // verifing the ip.txt file was recv.

  }

   else // if connection failed restart program
  {

    cout << "Server connection failed!..." << endl;
    cout << "quitting program input 1: " << endl;
    cin >> end;

   if(end == 1)
               {
     system("exit");
   }
               
   }
}



Server Version:

int ip_num; // where you input your ip number
SOCKET mysocket1 // your socket
SOCKET mysocket // clients socket
mysocket1 = socket(AF_INET, SOCK_STREAM, 0); //Sets the properties of our socket
int ip_request_accepted;
WSADATA wsaDAT;  // where the winsock data is stored

case 1: system("ipconfig");

       time_t rawtime;
   struct tm * timeinfo;

   time ( &rawtime );
   timeinfo = localtime ( &rawtime );


   cout << "Input your IP address now (with periods): ";
   cin >> ip_num;
                  
   fout.open("ip.txt");
                  
   fout << "[" << asctime (timeinfo) << "]" << "The server you are connected to's IP address is: "
   << ip_num << endl << endl;

   goto run;
   break;

run:

  SOCKADDR_IN SockAddr;      //this keeps track of the socket's address info
  SockAddr.sin_port = 50;
  SockAddr.sin_family = AF_INET;
  SockAddr.sin_addr.S_un.S_un_b.s_b1 = ip_num;


  if (WSAStartup(MAKEWORD(1,1), &wsaDAT) == 0)
  {

   if (bind(mysocket1, (SOCKADDR *)(&SockAddr), sizeof(SockAddr)) == 0)
   {
            
               
      listen(mysocket, 1);
      accept(mysocket, NULL, NULL);


      ip_request_accepted = recv(mysocket, ip_request, sizeof(ip_request), 0); // recieving request for IP info
               
      if ((ip_request_accepted != 0)||(ip_request_accepted != WSAECONNRESET))
      {

         send(mysocket1, "ip.txt", sizeof("ip.txt"), 0); // sending IP info
                  
         cout << "Your ip has been successfully sent to the client!" << endl << endl;                           

         else
         {
                cout << "An error has occured...restarting program!";
                goto startup;
         }
         
      }      

   }
         
            
      else
      {
         cout << "Server connection failed!..." << endl;
         cout << "restarting program..." << endl;

         goto startup;
      }

  getch();
}


Banana fanna fo fanna

Well...right off the bat, you should bind to 0.0.0.0. That's probably your problem.

MoNksBaNe_Agahnim


Banana fanna fo fanna


MoNksBaNe_Agahnim

kk thanks...I looked up what ya said and also found a new (and better) tutorial on winsock than what i recently was using and looking at that code i did it a lot harder than it needed to be hehe. Thanks bro appreciate the help --[Topic ended]--