Code: Alles auswählen
#Empfangsfenster=0:#Schreibfenster=1
If InitNetwork()=0:MessageRequester("Error","Bitte prüfe deine Verbindung",0):End:EndIf
OpenWindow(0,400,400,400,300,#pb_window_systemmenu,"Vserver"):CreateGadgetList(WindowID())
CreateStatusBar(0,WindowID())
StringGadget(#Empfangsfenster,5,5,300,200,"",#PB_String_MultiLine|#ESB_DISABLE_BOTH|#ES_AUTOVSCROLL|#WS_VSCROLL|#pb_string_readonly)
StringGadget(#Schreibfenster,5,215,300,62,"",#PB_String_MultiLine|#ESB_DISABLE_BOTH|#ES_AUTOVSCROLL|#WS_VSCROLL)
Frame3DGadget(3,310,215,80,62,"",1)
Frame3DGadget(5,310,5 ,80,200,"",2):
ButtonGadget(2,325,232,50,31,"Senden")
ButtonGadget(4,315,12,70,31,"Datei senden")
Port = 6932
Buffer = AllocateMemory(0, 10000, 0)
Name$ = "Nik"
Client1name$="Client"
ConnectionID=OpenNetworkConnection("127.0.0.1",Port)
If ConnectionID=0
If CreateNetworkServer(Port)
Repeat
If WaitWindowEvent()=#pb_event_gadget
If EventGadgetID()=2
SendNetworkString(ClientID,Name$+": "+GetGadgetText(#Schreibfenster)+Chr(13)+Chr(10))
SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+Name$+": "+GetGadgetText(#Schreibfenster)+Chr(13)+Chr(10))
SetGadgetText(#Schreibfenster,""):
EndIf
EndIf
If NetworkServerEvent()
ClientID = NetworkClientID()
Select NetworkServerEvent()
Case 1;neuer client
SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+"<> neuer Client: "+Client1name$+" <>"+Chr(13)+Chr(10))
Case 2;Text empfangen
ReceiveNetworkData(ClientID, Buffer, 10000)
SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+PeekS(Buffer))
Case 3;Datei enpfangen
If MessageRequester("Datei von Client",Client1name$+" hat ihnen eine Datei gesendet", #pb_messagerequester_yesno)=6
ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3"):EndIf
Case 4;client verlassen
StatusBarText(0,0,Client1name$+" hat den Server verlassen",0)
EndSelect
EndIf
Until WindowEvent()=#pb_eventclosewindow Or getasynckeystate_(#vk_escape)<>0
CloseNetworkServer()
EndIf:Else;************************************************************************* Als Client***************************************************
Repeat
If WaitWindowEvent()=#pb_event_gadget
If EventGadgetID()=2
SendNetworkString(ConnectionID,Name$+": "+GetGadgetText(#Schreibfenster)+Chr(13)+Chr(10))
SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+Name$+": "+GetGadgetText(#Schreibfenster)+Chr(13)+Chr(10))
SetGadgetText(#Schreibfenster,""):
EndIf
EndIf
If NetworkClientEvent(ConnectionID)
ConnectionID= NetworkClientID()
Select NetworkServerEvent();ConnectionID)
;Case 1;neuer client
;SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+"<> neuer Client: "+Client1name$+" <>"+Chr(13)+Chr(10))
Case 2;Text empfangen
ReceiveNetworkData(ConnectionID, Buffer, 10000)
MessageRequester("Info", "String: "+PeekS(Buffer), 0)
SetGadgetText(#Empfangsfenster,GetGadgetText(#Empfangsfenster)+Client1name$+": "+PeekS(Buffer))
Case 3;Datei enpfangen
If MessageRequester("Datei von Client",Client1name$+" hat ihnen eine Datei gesendet", #pb_messagerequester_yesno)=6
ReceiveNetworkFile(ConnectionID, "C:\TEST_Network.ftp3"):EndIf
;Case 4;client verlassen
;StatusBarText(0,0,Client1name$+" hat den Server verlassen",0)
EndSelect
EndIf
Until WindowEvent()=#pb_eventclosewindow Or getasynckeystate_(#vk_escape)<>0
EndIf
End