Network problem
Übersicht

GeGenesisBetreff: Network problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich wollte ein Chat programmiren und habbe auch alles soweit aber mann kann immer nur 1 Nachrich enpfangen ...
SErver Code: [AUSKLAPPEN] e=CreateTCPServer(6001)
If e<>0 Then Print "Server erfolgreich gestartet" Else Print "Server konnte nicht gestartet werden" End End If Repeat d=AcceptTCPStream(e) If d Then Print ReadString(d) Delay(100) WriteString d,"Pong" End If Until KeyHit(1) CloseTCPServer svrGame End client Code: [AUSKLAPPEN] strmGame=OpenTCPStream("192.168.0.6",6001)
If strmGame<>0 Then Print "Client erfolgreich verbunden" Else Print "Konnte keine Verbindung herstellen" WaitKey End End If Repeat Print "Ping..." WriteString strmGame,"Ping" Delay(100) Print ReadString(strmgame) Delay(1000) Until KeyHit(1) CloseTCPStream strmGame End |
||
- Zuletzt bearbeitet von GeGenesis am So, Nov 14, 2004 17:29, insgesamt einmal bearbeitet
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Musst es halt die Einagebe in die HAuptschleife packen. Und eine Eigene Inputroutine schreiben, dass das Programm nicht angehalten wird.
Übreigens wenn du suchst, findest du sicher an die 10 Beispiele.... |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke
ich vergess immer das waitkey immer das ganze prog anhält |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Codes habe ich erneuert !
Aber der Server gibt immer nur 1 mal pong zurück ... |
||
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
closespcstream fehlt! | ||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok das auch aber wieso Grig ich nur eimal Pong zurück ? | ||
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
weil die verbindung immer noch steht und erst wenn eine neue
verbindung aufgebaut wird, pong gesendet wird. deshalb closetcpsteam, nach dem pong senden! |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aso ich habe gedacht nach dem ende
DANKE!!! |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber wenn er Den Stream Schliest wird er nicht mehr aufgebaut ... | ||
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] closetcpsteam(d) nicht Code: [AUSKLAPPEN] closetcpsteam(e) so gehts ![]() |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Server code:
Code: [AUSKLAPPEN] e=CreateTCPServer(6001)
If e<>0 Then Print "Server erfolgreich gestartet" Else Print "Server konnte nicht gestartet werden" End End If Repeat d=AcceptTCPStream(e) If d Then a=1 Else a=0 End If If a=1 Print ReadString(d) Delay(100) WriteString d,"Pong" CloseTCPStream(e) EndIf Until KeyHit(1) CloseTCPServer svrGame End 'Stream does not existiren' Kommt da immer ![]() |
||
- Zuletzt bearbeitet von GeGenesis am So, Nov 14, 2004 20:21, insgesamt einmal bearbeitet
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Delay(100) WriteString d,"Pong" CloseTCPStream(ed) <-------- ed????? EndIf da hat sich ein schreibfehler eingeschlichen... nicht CloseTCPStream(ed) <-------- ed????? sondern CloseTCPStream(d) <-------- dann gehts wirklich |
||
GeGenesis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
geht nicht ![]() |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Menschenskind.... Arbeite doch endlich mal mit vernünftigen Variablennamen.
Servercode: Code: [AUSKLAPPEN] Server=CreateTCPServer(6001) If Server<>0 Then Print "Server erfolgreich gestartet" Else Print "Server konnte nicht gestartet werden" End End If Repeat Connect = AcceptTCPStream( Server ) If Connect Then Stream = Connect EndIf If Stream If ReadAvail( Stream ) Print ReadString( Stream ) Print "Pong..." WriteString Stream,"Pong" EndIf EndIf Until KeyHit(1) CloseTCPServer Server End Clientcode: Code: [AUSKLAPPEN] Stream=OpenTCPStream("127.0.0.1",6001) If Stream<>0 Then Print "Client erfolgreich verbunden" Else Print "Konnte keine Verbindung herstellen" WaitKey End End If send = 1 Repeat If send Print "Ping..." WriteString Stream,"Ping" EndIf If ReadAvail( Stream ) Print ReadString( Stream ) send = 1 Else send = 0 EndIf Until KeyHit(1) CloseTCPStream Stream End Nun die erklärung: AcceptTCPStream wird nur einmal gebraucht (pro Client). Es gibt nämlich, falls ein neuer Client beitritt, das Streamhandle auf den Clientstream zurück, dieses Handle speichert man sich dann. Später fragt man mittels ReadAvail ab, ob neue Daten auf dem Stream sind. Wenn AcceptTCPStream ein erneutes mal aufgerufen wird, liefert dieses nur 0 zurück, da ja kein neuer Client joint. Desshalb sollte das Ergebnis von AcceptTCPStream nicht auf das Streamhandle gespeichert werden, weil ja dieses dann auf 0 gesetzt würde, was zur folge hätte, dass bei ReadAvail eine Fehlermeldung kommt, da der Stream 0 nicht existiert. Jaja... Diese TCP angelegenheit in sachen Server ist ne ziemlich komplizierte Sache, schade nur, dass das in der Hilfe nirgends so genau beschrieben wird. MfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group