#1 11. November 2009 Chat Hallo, hat jemand ein Beispiel für einen Chat für mich? Das mit den Sockets klappt bei mir irgendwie nit so richtig bei mir. Benutze Turbo C++ Mfg SeBBo + Multi-Zitat Zitieren
#2 11. November 2009 AW: Chat besser wäre wenn du beschreibst was genau mit den sockets nicht klappt. am besten mit code-ausschnitten + Multi-Zitat Zitieren
#3 11. November 2009 AW: Chat Ok werde ich morgen sofort tun. Quellcode ist auf der Arbeit. + Multi-Zitat Zitieren
#4 12. November 2009 AW: Chat Code: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form1->Caption = "Server"; // Daran sieht man, ob man Server ist ServerSocket->LocalPort=StrToInt (Edit1->Text); // wählt den Port aus ServerSocket->Open(); // Öffnet den Server Memo1->Lines->Add("Chatroom (Server) erfolgreich erstellt."); ServerSocket->Accept(); ShowMessage("Client Connected"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Form1->Caption = "Client"; // Daran sieht man, ob man Client ist ClientSocket->RemotePort=StrToInt (Edit3->Text); //Wählt Port aus ClientSocket->RemoteHost=Edit2->Text; // Setzt die Ip-Adresse des Servers ClientSocket->Open(); // Verbindet den Clienten mit dem Server Button3->Enabled=true; ClientSocket->Sendln("c: Client tritt bei");// Sendet Nachricht, dass der Client sich verbunden hat Memo1->Lines->Add("Verbindung zum Server wurde hergestellt."); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { if (Form1->Caption=="Server"){ Memo1->Lines->Add("Server:"+Edit4->Text); //fügt den eigenen Text ins Memo ServerSocket->Sendln(Edit4->Text); } if (Form1->Caption=="Client") { if (ClientSocket->Active==true) { Memo1->Lines->Add("Client:"+Edit4->Text); // wird der eigenen Text ins Memo eingefügt ClientSocket->Sendln("n:"+Edit4->Text); //n: signalisiert dem Server, dass es eine Nachricht vom Nutzer ist. Memo1->Lines->Add("Fehler beim Senden einer Nachricht an den Server!"); }else { Memo1->Lines->Add("Du bist mit keinem Server verbunden."); //fügt Fehlermeldung ins Hauptfeld } Edit4->Text=""; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { if (Form1->Caption=="Client") { ClientSocket->Close(); // Client schließen Memo1->Lines->Add("Verbindung geschlossen"); Memo1->Lines->Add("Fehler beim Schließen der Verbindung!"); } if (Form1->Caption=="Server") { ServerSocket->Close(); // Server schließen Memo1->Lines->Add("Server (Chatroom) geschlossen"); Memo1->Lines->Add("Fehler beim Schließen des Servers!"); } Form1->Caption="Simple TCP Chat"; } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientSocketReceive(TObject *Sender, PChar Buf, int &DataLen) { Memo1->Lines->Add("Server:" + ClientSocket->Receiveln()); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { if (Form1->Caption=="Client") { ClientSocket->Close(); } if (Form1->Caption=="Server") { ServerSocket->Close(); } } //--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocketListening(TObject *Sender) { ShowMessage("Socket Listening"); ShowMessage(ServerSocket->Receiveln()); AnsiString text; text=ServerSocket->Receiveln(); Memo1->Lines->Add("Client: "&text); //wenn es eine Nachticht vom Nutzer ist, wird dem Memo die Nachricht hinzugefügt } //--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocketAccept(TObject *Sender, TCustomIpClient *ClientSocket) { ShowMessage("Verbindung akzeptiert"); ShowMessage(ServerSocket->Receiveln()); } //--------------------------------------------------------------------------- Das ist mein Quellcode + Multi-Zitat Zitieren
#5 12. November 2009 AW: Chat Den Teil hast du noch nicht getan, so ist Hilfe schwer. Treten Compilerfehler auf? Wenn ja, hier reinkopieren! Treten zur Laufzeit Fehler auf? Debugger anwerfen und die Fehlerstelle suchen! Am besten mal deine Buttons/Edits benennen, damit man schneller erkennt, was was ist. + Multi-Zitat Zitieren
#6 12. November 2009 Zuletzt von einem Moderator bearbeitet: 14. April 2017 AW: Chat Also es treten keine Compilierfehler auf und auch keine Socket Fehler und trotzdem bekomm ich keine Verbindung hin. Keine Reaktion. Bilder mit der grafischen Oberfläsche und beschreibung kommen sofort. https://www.xup.in/pic,19009549/Unbenannt.PNG + Multi-Zitat Zitieren