TCP Chatprobleme
Übersicht

![]() |
ReLeNtLeSSBetreff: TCP Chatprobleme |
![]() Antworten mit Zitat ![]() |
---|---|---|
HeyHo,
das ich schonmal was zu diesem Thema fragte, mir aber die Antworten nich so fiel geholfen haben, ich schon wieder ein wenig rumgebastelt hab etc.. etc.. fang ich hier nochmal neu an. Also: Bei meinem Chat habe ich einen Server, der einen TCPServer öffnet, und auf den Server connecten die Clienten und die Nachrichten laufen über den Server. Allerdings weis ich schon bei Server nicht, ob der überhaupt richtig "initialiesiert". Der Client bekommt auch keine Verbindung, "Invalid TCP Stream Handle". Nun zu meine Codes; ich HOFFE ihr köönt mir helfen!! ![]() DER SERVER: Code: [AUSKLAPPEN] ; SERVER! fenster1=CreateWindow("ForSo Chat Alpha1 - Hostfenster",300,300,300,300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1 - Server" CreateLabel(label1$,5,5,100,15,fenster1) label2$="Port hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label4$="----->>>>>> Host erfolgreich! <<<<<<-----" label5$="----->>>>>> Host nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS port=CreateTextField(20,50,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Hosten!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton CloseTCPServer(host) Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton host=CreateTCPServer(TextFieldText(port)) If host<>0 Then SetStatusText(fenster1,label4$) Else SetStatusText(fenster1,label5$) stream=AcceptTCPStream(host) If stream=0 Then Print "Fail to accept Stream" EndIf End Select End Select Forever UpdateWindowMenu fenster1 DER CLIENT: Code: [AUSKLAPPEN] ; APLHA NR 1 DES FORSOCHATS -- CLIENT! fenster1=CreateWindow("ForSo Chat Alpha1 - Verbindungsfenster",300,300,300,300) fenster2=CreateWindow("ForSo Chat Alpha1 - Chatfenster",600,300,400,400) HideGadget fenster2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1" CreateLabel(label1$,5,5,100,15,fenster1) CreateLabel(label1$,5,5,100,15,fenster2) label2$="Host-IP hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label3$="Port hier eingeben:" CreateLabel(label3$,20,90,200,20,fenster1) label4$="----->>>>>> Verbindung erfolgreich! <<<<<<-----" label5$="----->>>>>> Verbindung nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS hostipfe$=CreateTextField(20,50,100,20,fenster1) empfangfenster=CreateTextArea(5,20,380,200,fenster2) chatfenster$=CreateTextField(5,250,380,150,fenster2) chatname$=CreateTextField(20,110,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Verbinden!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) endebutton1=CreateButton("Ende",90,225,80,20,fenster2) absendenbu=CreateButton("Senden",5,225,80,20,fenster2) schnickschnackbu$=CreateButton("SchnickSchnack Menü",175,225,200,20,fenster2) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES Name$="TEST" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton1 Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case endebutton Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton ShowGadget fenster2 join=OpenTCPStream(TextFieldText(hostipfe$),TextFieldText(chatname$)) If join<>0 Then SetStatusText(fenster2,label4$) Else SetStatusText(fenster2,label5$) EndIf stream=AcceptTCPStream(host) If stream=0 Then Print "Fail to Accept Stream" AddTextAreaText empfangsfenster,"Angemeldet als: " + Name$ Case absendenbu WriteString stream,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10) in$=ReadString$(stream) AddTextAreaText(empfangsfenster,in$) End Select End Select Forever UpdateWindowMenu fenster1 UpdateWindowMenu fenster2 MfG |
||
- Zuletzt bearbeitet von ReLeNtLeSS am Fr, Okt 12, 2007 22:25, insgesamt 2-mal bearbeitet
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann mir denn echt keiner helfen?
Sorry für das bisschen Ungeduld, aber ich sitz da jetz schon fast ne Woche drann.... |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist, dass Du nur direkt nach dem initialisieren auch AcceptTCPStream aufrufst.
Dieser Befehl muss jedoch in einer Schleife aufgerufen werden, solange auf neue Clients gewartet wird, denn nur dann können diese verbinden. CreateTCPServer erstellt nur einen sog. Listening-Socket, der ausschließlich dazu dient, ankommende Verbindungsanfragen anzunehmen. Mit AcceptTCPStream wird dann erst geprüft, ob einen solche Verbindungsanfrage vorliegt und die Verbindung auf einem weiteren Socket aufgebaut. Die zeitliche Reihenfolge des Ablaufs sieht also so aus: Server: CreateTCPServer Client: OpenTCPStream Server: AcceptTCPStream Da OpenTCPStream einen TimeOut hat, muss das Annehmen der Clients kontinuierlich erfolgen, sonst gibt der Client wieder auf und Du erhältst Deine Fehlermeldung. |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du eine Verbindung nur beim Mausklick zu läßt wird das nix ![]() |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, ich bin jetz schon wesentlich weiter, das programm läuft, allerdings weis ich NICHT warum die nachrichten nicht ankommen!
BEIM SERVER: Code: [AUSKLAPPEN] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton CloseTCPServer(host) Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton host=CreateTCPServer(TextFieldText(port)) ;den server machen If host<>0 Then SetStatusText(fenster1,label4$) ; nachricht ob host erfolgreich Else SetStatusText(fenster1,label5$) EndIf stream=AcceptTCPStream(host) ;strean finden If stream Then zustandv=1 ; zustand is zuvor zustandv=0 End Select End Select If zustandv=1 Then ;Hier soll er die ganze Zeit, alles was reinkommt lesen und wieder ; reinschreiben, was er aber nicht tut.... in$=ReadString$(host) WriteString in$,host EndIf Forever DER CLIENT: Code: [AUSKLAPPEN] Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton1 Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case endebutton Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton ShowGadget fenster2 join=OpenTCPStream(TextFieldText(hostipfe$),TextFieldText(chatname$)) ; Der Stream wird geöffnet If join<>0 Then SetStatusText(fenster2,label4$) ; Hats geklappt? Else SetStatusText(fenster2,label5$) EndIf AddTextAreaText empfangfenster,"Angemeldet als: " + Name$ zustand=1 ; Zustand war vorher zustand=0 Case absendenbu WriteString join,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10) AddTextAreaText(empfangfenster,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10)) ;Was er absendet und ins Chatfenster schreibt End Select End Select If zustand=1 Then ;Hier soll er die ganze Zeit lesen, was er anscheinend nich tut... in$=ReadString$(join) AddTextAreaText(empfangfenster,in$) EndIf Forever Danke für Hilfe ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nochmal
Simulation : Server starten Click auf verbinden und CreateTCPServer Schleife> warten wer sich verbindet mit AcceptTCPStream und Stream merken wenn Verbindung Stream<>0 dann Daten lesen <Schleife Bei Waitevent mußte zusehen das auch eins erzeugt wird sonnst steht dein Programm still . Könntest nen Timer dazu nehmen der x mal in der Sekunde was auslößt . Code: [AUSKLAPPEN] Select EventSource() Case verbindenbutton host=CreateTCPServer(TextFieldText(port)) ;den server machen If host<>0 Then SetStatusText(fenster1,label4$) ; nachricht ob host erfolgreich Else SetStatusText(fenster1,label5$) EndIf End Select Code: [AUSKLAPPEN] stream=AcceptTCPStream(host) ;strean finden |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
jojo die abfolge verstehe ich ja; allerdings habe ich nirgends ein Beispiel gefunden, was mir folgendes erklärt:
Der Server liest immer un immer wieder den Stream und kopiert alles auch wieder hinein, damit es bei jedem Clienten ankommt. Die Clienten lesen immer un immer wieder den Stream und kopieren alles in das Empfangtextarea. Gleichzeitig kopieren sie auch alles, was geschrieben wird in den Stream. Das Prinzip, also wie das Netzwerk FUnktioniert, weis ich, aber nicht, wie ich es konkret auf diesen Chat anwende! ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
stream=AcceptTCPStream(host)
das ist eine Verbindung wenn du diese Variable immer überschreibst haste auch nur eine Verbindung wo du antworten kannst . Mußte also sammeln streamneu=AcceptTCPStream(host) if streamneu<>0 then streamindex=streamindex+1:stream(streamindex)=streamneu for i=1 to streamindex writestring stream(i),"Echo" <- da steht dann das drin was rein gekommen ist next |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Markus2 hat Folgendes geschrieben: stream=AcceptTCPStream(host)
das ist eine Verbindung wenn du diese Variable immer überschreibst haste auch nur eine Verbindung wo du antworten kannst . Mußte also sammeln streamneu=AcceptTCPStream(host) if streamneu<>0 then streamindex=streamindex+1:stream(streamindex)=streamneu for i=1 to streamindex writestring stream(i),"Echo" <- da steht dann das drin was rein gekommen ist next äähm... sorry aber..... WasWieWoWer? Ich muss mehrere AcceptTCPStreams haben? Wieso das denn? der server braucht doch nur einmal wissen das da ne verbindung is oder nich? |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bitte lies Dir doch meinen obigen Post durch und versuche es zu verstehen. Solange Du besagte Änderung nicht durchführst wird Dein Programm auch nicht funktionieren... | ||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
BIG BUG hat Folgendes geschrieben: Das Problem ist, dass Du nur direkt nach dem initialisieren auch AcceptTCPStream aufrufst.
Dieser Befehl muss jedoch in einer Schleife aufgerufen werden, solange auf neue Clients gewartet wird, denn nur dann können diese verbinden. CreateTCPServer erstellt nur einen sog. Listening-Socket, der ausschließlich dazu dient, ankommende Verbindungsanfragen anzunehmen. Mit AcceptTCPStream wird dann erst geprüft, ob einen solche Verbindungsanfrage vorliegt und die Verbindung auf einem weiteren Socket aufgebaut. Die zeitliche Reihenfolge des Ablaufs sieht also so aus: Server: CreateTCPServer Client: OpenTCPStream Server: AcceptTCPStream Da OpenTCPStream einen TimeOut hat, muss das Annehmen der Clients kontinuierlich erfolgen, sonst gibt der Client wieder auf und Du erhältst Deine Fehlermeldung. Alles klar, okay, aber wie tu ich das inne schleife das er auf tastendruck anfaängt? geht ZB.: repeat select ... usw case verbindenbutton repeat create und accept stream forever forever Geht sowas? |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
AAAALSO
ich hab jetz die streams in die schleife gepackt..... allerdings hakt das programm übel und nachner weile kommt "Invalid TCP Stream".... ich weis nich wieso.... kann mir wer helfen? SERVER: Code: [AUSKLAPPEN] ; APLHA NR 1 DES FORSOCHATS -- SERVER! fenster1=CreateWindow("ForSo Chat Alpha1 - Hostfenster",300,300,300,300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1 - Server" CreateLabel(label1$,5,5,100,15,fenster1) label2$="Port hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label4$="----->>>>>> Host erfolgreich! <<<<<<-----" label5$="----->>>>>> Host nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS port=CreateTextField(20,50,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Hosten!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES zustandv=0 serverge=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton CloseTCPServer(host) Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton host=CreateTCPServer(TextFieldText(port)) If host<>0 Then SetStatusText(fenster1,label4$) Else SetStatusText(fenster1,label5$) EndIf serverge=1 End Select End Select If serverge=1 Then stream=AcceptTCPStream(host) If stream Then zustandv=1 If zustandv=1 Then in$=ReadString$(host) WriteString in$,host EndIf EndIf Forever UpdateWindowMenu fenster1 CLIENT: Code: [AUSKLAPPEN] ; APLHA NR 1 DES FORSOCHATS -- CLIENT! fenster1=CreateWindow("ForSo Chat Alpha1 - Verbindungsfenster",300,300,300,300) fenster2=CreateWindow("ForSo Chat Alpha1 - Chatfenster",600,300,400,400) HideGadget fenster2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1" CreateLabel(label1$,5,5,100,15,fenster1) CreateLabel(label1$,5,5,100,15,fenster2) label2$="Host-IP hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label3$="Port hier eingeben:" CreateLabel(label3$,20,90,200,20,fenster1) label4$="----->>>>>> Verbindung erfolgreich! <<<<<<-----" label5$="----->>>>>> Verbindung nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS hostipfe$=CreateTextField(20,50,100,20,fenster1) empfangfenster=CreateTextArea(5,20,380,200,fenster2) chatfenster$=CreateTextField(5,250,380,150,fenster2) chatname$=CreateTextField(20,110,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Verbinden!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) endebutton1=CreateButton("Ende",90,225,80,20,fenster2) absendenbu=CreateButton("Senden",5,225,80,20,fenster2) schnickschnackbu$=CreateButton("SchnickSchnack Menü",175,225,200,20,fenster2) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES Name$="TEST" zustand=0 serveran=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton1 Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case endebutton Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton ShowGadget fenster2 serveran=1 AddTextAreaText empfangfenster,"Angemeldet als: " + Name$ Case absendenbu WriteString join,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10) AddTextAreaText(empfangfenster,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10)) End Select End Select If serveran=1 Then join=OpenTCPStream(TextFieldText(hostipfe$),TextFieldText(chatname$)) If join<>0 Then SetStatusText(fenster2,label4$) Else SetStatusText(fenster2,label5$) EndIf zustand=1 EndIf If zustand=1 Then in$=ReadString$(join) AddTextAreaText(empfangfenster,in$) EndIf Forever UpdateWindowMenu fenster1 UpdateWindowMenu fenster2 Nochmals Danke![/code] |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Häh ?
in$=ReadString$(host) <- warum host statt stream ? WriteString in$,host und vorm lesen solltest du gucken ob daten im empfangspuffer bzw. stream sind . beenden solltet du übrigens besser so machen if host<>0 then CloseTCPServer host host=0 endif beim verbinden so if host<>0 then ... abmelden if host=0 then host=CreateTCPServer(TextFieldText(port)) endif |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Markus2 hat Folgendes geschrieben: Häh ?
in$=ReadString$(host) <- warum host statt stream ? WriteString in$,host weil host=createtcpserver und host=acceptcpstream ... oder muss da immer stream hin??? |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Parameter stimmt nicht drück mal F1 über ReadString
Code: [AUSKLAPPEN] If serverge=1 Then stream=AcceptTCPStream(host) If stream Then zustandv=1 If zustandv=1 Then in$=ReadString$(host) WriteString in$,host EndIf EndIf |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Doch der Parameter Stimmt! Laut OH:
"Parameter Stream = Dateiidentität, die mit OPENFILE/READFILE ermittelt wurde Rückgabewert Ein String mit unterschiedlich vielen Zeichen. Beispiel Dieses Programm speichert den Text "Hallo" in eine Datei. Danach wird es wieder ausgelesen und ausgegeben: fileout = WRITEFILE("mydata.dat") WRITESTRING fileout,"Hallo" CLOSEFILE fileout filein = READFILE("mydata.dat") Wert$ = READSTRING$(filein) CLOSEFILE filein PRINT Wert$ " Also, stream=AcceptTCPStream(host), also ReadString$(host).... Oder was meinst du? |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ReadString$(host)
ist nicht ReadString$(stream) |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
ne seh ich auch
aber es muss doch trtzdem funzen, weil: Wert$ = READSTRING$(filein) dann müsste doch das auch nich gehen? /EDIT: SORRY, ich weis jetz was du meinst >.< ich werds gleich verbessern^^ /EDIT2: Beide Haken immernoch und brechen nach einigen Minuten mit "invalid stream handle" ab ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm,
dann zeige uns erstmal den Stand der Dinge ![]() |
||
![]() |
ReLeNtLeSS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke für deine Geduld ![]() ALso, SERVER: Code: [AUSKLAPPEN] ; APLHA NR 1 DES FORSOCHATS -- SERVER! fenster1=CreateWindow("ForSo Chat Alpha1 - Hostfenster",300,300,300,300) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1 - Server" CreateLabel(label1$,5,5,100,15,fenster1) label2$="Port hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label4$="----->>>>>> Host erfolgreich! <<<<<<-----" label5$="----->>>>>> Host nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS port=CreateTextField(20,50,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Hosten!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES zustandv=0 serverge=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton CloseTCPServer(host) Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton host=CreateTCPServer(TextFieldText(port)) If host<>0 Then SetStatusText(fenster1,label4$) Else SetStatusText(fenster1,label5$) EndIf serverge=1 End Select End Select If serverge=1 Then stream=AcceptTCPStream(host) If stream Then zustandv=1 If zustandv=1 Then in$=ReadString$(stream) WriteString stream,in$ EndIf EndIf Forever UpdateWindowMenu fenster1 BlitzDebugger mekkert beim Starten und Hosten NICHT. CLIENT: Code: [AUSKLAPPEN] ; APLHA NR 1 DES FORSOCHATS -- CLIENT! fenster1=CreateWindow("ForSo Chat Alpha1 - Verbindungsfenster",300,300,300,300) fenster2=CreateWindow("ForSo Chat Alpha1 - Chatfenster",600,300,400,400) HideGadget fenster2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LABELS label1$="ForSo Chat Alpha 1" CreateLabel(label1$,5,5,100,15,fenster1) CreateLabel(label1$,5,5,100,15,fenster2) label2$="Host-IP hier eingeben:" CreateLabel(label2$,20,30,200,20,fenster1) label3$="Port hier eingeben:" CreateLabel(label3$,20,90,200,20,fenster1) label4$="----->>>>>> Verbindung erfolgreich! <<<<<<-----" label5$="----->>>>>> Verbindung nicht erfolgreich! <<<<<<-----" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TEXTAREAS hostipfe$=CreateTextField(20,50,100,20,fenster1) empfangfenster=CreateTextArea(5,20,380,200,fenster2) chatfenster$=CreateTextField(5,250,380,150,fenster2) chatname$=CreateTextField(20,110,100,20,fenster1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;BUTTONS verbindenbutton=CreateButton("Verbinden!",20,150,80,20,fenster1) endebutton=CreateButton("Ende",120,150,80,20,fenster1) endebutton1=CreateButton("Ende",90,225,80,20,fenster2) absendenbu=CreateButton("Senden",5,225,80,20,fenster2) schnickschnackbu$=CreateButton("SchnickSchnack Menü",175,225,200,20,fenster2) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SONSTIGES Name$="TEST" zustand=0 serveran=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EREIGNISSE Repeat Select WaitEvent() Case $401 Select EventSource() Case endebutton1 Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case endebutton Notify "ForSo Chat V.0.1 Alpha - by ReLeNtLeSS" End Case verbindenbutton ShowGadget fenster2 serveran=1 AddTextAreaText empfangfenster,"Angemeldet als: " + Name$ Case absendenbu WriteString join,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10) AddTextAreaText(empfangfenster,Name$ + ":" + Chr$(13)+Chr$(10) +TextFieldText(chatfenster$) + Chr$(13)+Chr$(10) + Chr$(13)+Chr$(10)) End Select End Select If serveran=1 Then join=OpenTCPStream(TextFieldText(hostipfe$),TextFieldText(chatname$)) If join<>0 Then SetStatusText(fenster2,label4$) Else SetStatusText(fenster2,label5$) EndIf zustand=1 EndIf If zustand=1 Then in$=ReadString$(join) ; Hier meckert BlitzDebugger "Invalid Stream Handle". WARUM AddTextAreaText(empfangfenster,in$) EndIf Forever UpdateWindowMenu fenster1 UpdateWindowMenu fenster2 Hab die problem stelle LAUT BLITZDEBUGGER makiert ![]() und danke nochmal! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group