Chatprogramm
Verfasst: 17.10.2007 16:44
Hi, Leute, ich hab mal angefangen ein Chatprogramm zu schreiben. Am Anfang hat alles gut geklappt. Zu gut ^^ aber jetzt sind in dem Code doch noch ein paar Fehler. Das Programm soll am Anfang prüfen ob es den Server gibt, sonst einen eigenen erstellen. Dann sollen eben die Daten überwickelt werden und im Feld für die Anzeige reingeschrieben werden. Im Code sind einfach ein paar Fehler, die ich nicht verstehe und einfach nicht beheben kann. Ich hoffe ihr könnt mir helfen. Habe immer noch 3.30 -.-
Danke schonmal!
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