Ich habe angefangen eine Chat Programm zu schreiben!
Ihr erstmal der Client:
Code: Alles auswählen
;client
InitNetwork()
OpenWindow(0,100,100,500,400,#PB_Window_SystemMenu,"Chat")
CreateGadgetList(WindowID())
ButtonGadget(1,390,340,100,20,"Senden")
StringGadget(3, 10, 340, 370, 20, "")
EditorGadget(2, 10, 10, 480, 300)
Buffer = AllocateMemory(1000)
ConnectionID = OpenNetworkConnection("127.0.0.1", 600)
Repeat
;Fenster
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadgetID()=1
Text$ = GetGadgetText(3)
SendNetworkString(ConnectionID, Text$)
SetGadgetText(3, "")
EndIf
EndIf
CEvent.l = NetworkClientEvent(ConnectionID)
Select CEvent
Case 2
ReceiveNetworkData(ConnectionID, Buffer, 1000)
AddGadgetItem(2, -1, PeekS(Buffer))
;2 : Roh-Daten wurden empfangen (können mittels ReceiveNetworkData() gelesen werden)
Case 3
MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
; 3 : Eine Datei wurde empfangen (kann mittels ReceiveNetworkFile() gelesen werden)
EndSelect
Until Quit=1
End
Ihr Code vom Server:
Code: Alles auswählen
;Server
InitNetwork()
CreateNetworkServer(600)
OpenWindow(0,100,100,500,400,#PB_Window_SystemMenu,"Server")
CreateGadgetList(WindowID())
ButtonGadget(1,390,340,100,20,"Senden")
StringGadget(3, 10, 340, 370, 20, "")
EditorGadget(2, 10, 10, 480, 300)
Buffer = AllocateMemory(1000)
Repeat
;Fenster
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_Event_Gadget
If EventGadgetID()=1
Text$ = GetGadgetText(3)
SendNetworkString(ClientID, Text$)
SetGadgetText(3, "")
EndIf
EndIf
;Server
SEvent.l = NetworkServerEvent()
;If SEvent
ClientID = NetworkClientID()
Select SEvent
Case 1
AddGadgetItem(2, -1, "Ein Neuer Chater ist online!")
;SendNetworkString(ClientID, "Ein Neuer Chater ist online!")
;1: Ein neuer Client wurde mit dem Server verbunden
Case 2
;MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
ReceiveNetworkData(ClientID, Buffer, 1000)
AddGadgetItem(2, -1, PeekS(Buffer))
;MessageRequester("Info", "String: "+PeekS(Buffer), 0)
; 2 : Roh-Daten wurden empfangen (können mittels ReceiveNetworkData() gelesen werden,)
;Case 3
;MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
;ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
; 3 : Eine Datei wurde empfangen (kann mittels ReceiveNetworkFile() gelesen werden)
Case 4
MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 0)
Quit = 1
;4 : Ein Client hat den Server verlassen (Verbindungstrennung)
EndSelect
Until Quit=1
End
