[Multithread] Probleme mit TCP Protokoll
Übersicht

![]() |
GearTechDEehemals 'KillerJo96'Betreff: [Multithread] Probleme mit TCP Protokoll |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute, ich nenne diesen Thread schon direkt Multithread, da ich mir zu 1000% sicher bin, dass ich noch weitere Fragen zum Thema TCP habe.
Also nun zu meinem Ersten Problem... (was nicht sooo schlimm ist, nervt aber) ist bestimmt ein Noob Fehler. Also ich habe einen kleinen wirklich so was von einfachen Server geschrieben. Hier der Code [syntax=bb] Server = CreateTCPServer(8080) If Server0 Then Print Server wurde gestartet! Else Print Server konnte nicht gestartet werden! End If While Not KeyHit(1) Stream = AcceptTCPStream(Server) If Stream Then Print ReadString$(Stream) WriteString Stream,ReadString$ End If Wend End [syntax] Dann noch den Client [syntax=bb] Print Wie ist dein Name Name$ = Input() While Not KeyHit(1) Stream = OpenTCPStream(127.0.0.1,8080) WriteString Stream,Name$ + + Input() CloseTCPStream (Stream) Wend [syntax] Wenn ich die jetzt mit einander kommunizieren lasse, hängt der Server sich manchmal ein bisschen auf und nimmt in der Zeit keine Messages an. Und das selbe Problem auch wenn ich mehrere Clients öffne! Was ist das Problem Ich bin mir schon ziemlich sicher das ich wieder nen nur minniiiii kleinen Fehler gemacht habe xD. Naja jetzt seid ihr gefragt. Danke schonmal im Voraus. Hoffe das mit dem MultiThread ist hier Okay, falls nicht soll mir bitte ein Moderator ne PM schreiben. Mfg Killerjo96 |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Anstatt den Stream vom Client ständig neu aufzubauen, solltest Du das vielleicht nur einmal vor der Schleife tun. | ||
Starfare: Worklog, Website (download) |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
werde es mal testen. danke schonmal | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mich wunderts ja ein wenig, wie dein Code überhaupt läuft wenn du bei Print![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
xD da ist so vier falsch keine ahnung warum. auf jeden fall habe ich jetzt den openstream vor die schleife gemacht. jetzt kann ich aber nur noch einmal schreiben. ich will mehrmals hintereinander schreiben können. wie mach ich das? | ||
Mit freundlichen Grüßen: GearTechDE |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
1. jedes AcceptTCPStream() gibt einen neuen Client-Handle zurück. Diesen musst du abspeichern -> Type ![]() ![]() 2. danach dann halt zum Aktualisieren alle(!) Clients durchgehen und auslesen. 3. ReadString ![]() 4. OpenTCPStream einmal pro Client. 5. Mehrere Nachrichten in der Schleife per Input/Eigene Routine BlitzBasic: [AUSKLAPPEN] Server = CreateTCPServer(8080) ; TCP Stream erstellen BlitzBasic: [AUSKLAPPEN] Print "Wie ist dein Name?" Wie gesagt, das Hauptproblem ist, dass AcceptTCPStream, ein Handle zurückliefert, dass nur für einen(!) Client gilt. Um später was an ihn zu schicken/empfangen brauchst du dieses. Möglichkeiten zum Speichern habe ich in den Kommentaren schon drin: - Wenns nur ein Client gibt (globale) Variable - Bei bestimmter Anzahl DIM ![]() - Sonst halt (eigentlich am Schlauesten) Type ![]() Übrigens, den Code verstehen, bei Fragen nachfragen usw. Nicht einfach kopieren... ![]() (Und in der Hilfe hats auch Beispiel zu CreateTCPServer ![]() mfg, count-doku |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group