Chat-Problem.

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Matthias

Betreff: Chat-Problem.

BeitragMi, Mai 27, 2009 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay. Ich will mich auch mal versuchen an der Übertragung von Daten via UDP.

Habe auch schon einiges gelesen.

Und habe auch schon einen Code gefunden der halbwegs Functioniert.

Mann Tippt einen Text ein und dieser wird gesendet an den Localhost.
Wenn nun eine Nachricht vorliegt wird dieser auch gleich Angezeigt.

Doch wenn ich eine 2Te Instance Starte wird zwar der Text zur 2Ten instance gesendet doch nicht umgedreht geht es nicht.

Ich hoffe mir kann jemand dabei helfen.

Code: [AUSKLAPPEN]

SuperStrict
Framework BRL.GLMax2D
Import BRL.Socket
Import BRL.StandardIO
Import BRL.SocketStream
Import BRL.Timer
Import BRL.Retro

SetGraphicsDriver GLMax2DDriver()

Type TMessage
Global List:TList=New TList
Field Text:String
end Type


Graphics 800,600
Global clientSocket:TSocket
Global clientStream:TStream
Global serverSocket:TSocket
Global serverStream:TStream
Global Set:Int


serverSocket:TSocket = CreateUDPSocket()
serverSocket.Bind(8001)
serverStream = CreateSocketStream(serverSocket)

Set=1

IF Set:Int=1 Then 
clientSocket=CreateUDPSocket()
clientSocket.Bind(8000)
clientSocket.Connect(HostIp("localhost") , 8001)
clientStream = CreateSocketStream(clientSocket)

End IF





Local Timer:TTimer=CreateTimer(60)
Local J:Int
Local Text:String
Repeat
    Cls
   J=0
 
    Local C:Int=GetChar() IF C=13 then SendMessage(Text) Text=""
    IF C<>0 Then Text$:+Chr(C)
   
   CheckMessage()
 
    DrawText Text,10,200     
 

    For Local M:TMessage=EachIn TMessage.List
      DrawText M.Text,10,J J:+15
   Next
   

   
  Flip 0 WaitTimer(Timer)
 
Until KEyDown(KEY_ESCAPE)
CloseSocket(clientSocket)
CloseSocket(serverSocket)
 End


Function SendMessage(Text$)
   For Local I:Int=0 To Len(Text)-1
      Local C:Int=Asc(Mid(Text,I+1,1))
      Writeint(clientStream,C)
      
   next
   
 
End Function

Function CheckMessage()
   Local NewMessage:Int
   Local M:TMessage
   Local W:Int
   While SocketReadAvail(serverSocket)
     IF NewMessage=0 Then M:TMessage=New TMessage
    IF NewMessage=0 Then ListAddLast(TMessage.List,M)
    NewMessage=1
    W=ReadInt(serverStream)
          
        M.Text:+Chr(W)
   Wend
End Function


Edit: SuperStrickt = OK
  • Zuletzt bearbeitet von Matthias am Mi, Mai 27, 2009 14:05, insgesamt einmal bearbeitet

BtbN

BeitragMi, Mai 27, 2009 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu erst mal: Schreib in die erste Zeile SuperStrict, erst dann ist es effektiv möglich, sinnvoll was zu machen.
 

Matthias

BeitragMi, Mai 27, 2009 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe jetzt alles SuperStrickt gemacht.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group