Oppure

Loading
14/12/06 14:49
posta10100
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!

void ClientFrame::ConnectButtonClick(wxCommandEvent& event)
{
    wxIPV4address addr;
    addr.Hostname(wxT("mia_macchina"));
    addr.Service(3000);
    wxSocketClient *Socket = new wxSocketClient();
    Socket->Connect(addr, false);
    if (!Socket->Ok()) {
        wxMessageBox(wxT("Socket connection error."));
        return;
    }

    unsigned char code = 0xAA;
    Socket->Write(&code, sizeof(code));
//------------------ Qui da segmentation fault
    Socket->Read(&code, sizeof(code));
    if (code == 0xBB) {
        code = 0xCC;
        Socket->Write(&code, sizeof(code));
        wxString version("5_Win");
        unsigned int versionLength = version.Len();
        Socket->Write(&versionLength, sizeof(versionLength));
        Socket->Write(version, versionLength);
    }
    Socket->Close();
}



GRAZIE!!!
Ultima modifica effettuata da posta10100 14/12/06 15:16
aaa