Socket Reconnect



  • ich hab ein chat programm zum lernen gebastelt, alles ok, klappt ganz ok, nur nachdem ich es disconnect und den server erneut auf listen modus setzen will, gibt es assert debug fehler. bitte hier um hilfe, thx for any solution.

    void CSocketDlg::OnBnClickedBconnect()
    {
    	// TODO: Add your control notification handler code here
    	UpdateData(TRUE);
    	GetDlgItem(IDC_BCONNECT)->EnableWindow(FALSE);
    	GetDlgItem(IDC_ESERVNAME)->EnableWindow(FALSE);
    	GetDlgItem(IDC_ESERVPORT)->EnableWindow(FALSE);
    	GetDlgItem(IDC_STATICNAME)->EnableWindow(FALSE);
    	GetDlgItem(IDC_STATICPORT)->EnableWindow(FALSE);
    	GetDlgItem(IDC_RCLIENT)->EnableWindow(FALSE);
    	GetDlgItem(IDC_RSERVER)->EnableWindow(FALSE);
    	GetDlgItem(IDC_STATICTYPE)->EnableWindow(FALSE);
    
    	if (m_iType == 0) {
    		m_sConnectSocket.Create();
    		m_sConnectSocket.Connect(m_strName, m_iPort);
    	} else {
    		m_sListenSocket.Create(m_iPort);
    		m_sListenSocket.Listen();
    	}
    }
    

    m_sConnectSocket und m_sListenSocket is member variable von typ CMySocket abgeleitet von CAsyncSocket.
    ich vermute, dass hier bei erneute aufrufen von konstruktur create den fehler verursacht, da schon das objekt schon initialisiert wurde, nun weiss ich nicht wie ich den socket reseten muss, wie sieht ihr das



  • kann mir niemand helfen??



  • Close würde ich aufrufen...



  • Ich denke das du dir mal selbst helfen solltest.
    Du wirfst einen Source her der nichtmal einen Fehler abfängt.
    Du kannst keine Socket auf einen Port binden der bereits existiert.
    Das hättest Du bei einer Exeption sehen können.
    Baue den Code mal so um das Du Fehler abfängst und ausgibst.
    Selbst wenn Du das hast kannst Du durch dein Programm Debuggen. Dann siehst Du auch warum es nicht geht.
    Bitte zuerst deine Hausaufgaben erledigen bevor Du sie an andere abtrittst.

    Ein Socketprogramm findet man im Buch Visual Studio 6 in 21 Tagen. Gibts sicher noch irgendwo Gratis zum lesen.



  • das programm stammt von VC++.Net in 21 Tagen, das urspruenliche Programm gab kein Disconnect funktion, also gar nicht die rede von Reconnect funktion. Deshalb suche ich hier nach Hilfen, bin ratlos.



  • Wo passiert der Fehler?
    Was für ein Fehler / Verhalten?
    Fehlercodes prüfen, GetLastError benutzen.



  • ihoernchen schrieb:

    Wo passiert der Fehler?
    Was für ein Fehler / Verhalten?
    Fehlercodes prüfen, GetLastError benutzen.

    dieser tip is schon hilfreicher, ich werde mal pruefen, vielen dank



  • Hilfreicher?

    Weiß Du was Exeptions sind?
    Du bist nicht auf meine Tipps eingegangen.
    Wozu sollte ich mir die Mühe machen wenn Du sie dir nicht machst.



  • so, ich hab das alles geregelt bekommen, ein kleiner Tips habe ich von andere source angeschaut, trotz allem thx


Anmelden zum Antworten