Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con wxSocketClient
Forum - C/C++ - Problema con wxSocketClient

Avatar
posta10100 (Normal User)
Rookie


Messaggi: 27
Iscritto: 23/10/2006

Segnala al moderatore
Postato alle 15:49
Giovedì, 14/12/2006
Qualcuno ha idea del perchè questo codice funziona su win ma non su linux e solaris?

Su questi due sistemi la connessione sembra a posto (il metodo Ok ritorna true) invia il carattere ma prima di fare Socket->Read(...) da segmentation fault!
Dall'analisi del core.xxx sembra che cerca di leggere (un evento??) da una tabella e cade!

Codice sorgente - presumibilmente C++

  1. void ClientFrame::ConnectButtonClick(wxCommandEvent& event)
  2. {
  3.     wxIPV4address addr;
  4.     addr.Hostname(wxT("mia_macchina"));
  5.     addr.Service(3000);
  6.     wxSocketClient *Socket = new wxSocketClient();
  7.     Socket->Connect(addr, false);
  8.     if (!Socket->Ok()) {
  9.         wxMessageBox(wxT("Socket connection error."));
  10.         return;
  11.     }
  12.  
  13.     unsigned char code = 0xAA;
  14.     Socket->Write(&code, sizeof(code));
  15. //------------------ Qui da segmentation fault
  16.     Socket->Read(&code, sizeof(code));
  17.     if (code == 0xBB) {
  18.         code = 0xCC;
  19.         Socket->Write(&code, sizeof(code));
  20.         wxString version("5_Win");
  21.         unsigned int versionLength = version.Len();
  22.         Socket->Write(&versionLength, sizeof(versionLength));
  23.         Socket->Write(version, versionLength);
  24.     }
  25.     Socket->Close();
  26. }




GRAZIE!!!

Ultima modifica effettuata da posta10100 il 14/12/2006 alle 16:16


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa.
A. Einstein
PM Quote