Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Socket
Forum - C/C++ - Socket

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 23:20
Sabato, 29/01/2011
Salve a tutti .
Ho un problema sto cercando di  comunicare con i server come il programma telnet solo che ho un piccolo problemino allora per fare i test uso un programma che mi sono scritto in c# che in sostanza è una piccola chat e quando mi connetto a questo programma, il problema non si pone riesco sia ad inviare e ricevere stringhe di testo mentre che se mi connetto al server di altervista alla porta 21 dopo aver ricevuto il benvenuto eccetera se provo ad inviare un comando non ottengo risposta dal server come mai ?
uso questo codice :
Codice sorgente - presumibilmente C++

  1. DWORD rec (LPDWORD lpdwParam);
  2.  
  3. SOCKET sock_deb;
  4.  
  5. void debserver(string ip,short port)
  6. {
  7.     SOCKADDR_IN addr;
  8.     struct sockaddr_in sock_addr;
  9.     WSADATA data;
  10.     WORD p=MAKEWORD(2,0);
  11.     int err=WSAStartup(p,&data);
  12.  
  13.     addr.sin_family = AF_INET;
  14.     addr.sin_addr.s_addr = inet_addr("178.63.0.7");
  15.     addr.sin_port = htons(21);
  16.     sock_deb = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  17.  
  18.     while(true)
  19.     {
  20.  
  21.         if (connect(sock_deb, (LPSOCKADDR)&addr, sizeof(addr)) < 0)
  22.         {
  23.             SetConsoleTextAttribute (hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY);
  24.             cout<<"\nConnection Failed\n"<<endl;
  25.             SetConsoleTextAttribute (hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  26.            // break;
  27.         }
  28.  
  29.  
  30.         DWORD dwThreadId, dwThrdParam = 1;
  31.             HANDLE thread =  CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)  rec, &dwThrdParam, 0, &dwThreadId);
  32.             string mex="";
  33.             getline(cin,mex);
  34.             int i=mex.size();
  35.             send(sock_deb,mex.c_str(),i,0);
  36.     }
  37. }
  38.  
  39. DWORD rec (LPDWORD lpdwParam)
  40. {
  41.     char rec[1000]="";
  42.     while (true)
  43.     {
  44.         recv(sock_deb,rec,sizeof(rec),0);
  45.         cout<<rec<<endl;
  46.     }
  47. }



PM