Seite 1 von 7
Server und Client auf dem gleichen Computer
Verfasst: 17.06.2006 15:24
von Joel
Hi,
kann an eigentlich Server und Client auf dem Selben Computer laufen lassen?
Weil ich das ausprobiert hab mit dem beispiel unten und dass nicht funktioniert.
Re: Server und Client auf dem gleichen Computer
Verfasst: 17.06.2006 15:27
von Kiffi
> kann an eigentlich Server und Client auf dem Selben Computer laufen
> lassen?
ja, kann man. Nimm das Server/Client - Beispiel aus der PB-Hilfe. Das
funktioniert auf ein- und demselben Rechner.
Grüße ... Kiffi
Verfasst: 17.06.2006 15:29
von Joel
achso ich hab was vergessem zu erwähnen:
Wenn man nicht 127.0.0.1 sondern die internet ip angibt zb . 84.123.214.09
Also bei mir Funktionierts nicht.
Hier mal der Code vielleicht hab ich auch was falsch Programmiert.
Server:
Code: Alles auswählen
Port = 6832
If InitNetwork() = 0
MessageBox_(Win,"Netzwerk Umgebung kann nicht vorbreitet werden!"+Chr(13)+"Ist dein Computer Internet Tauglich?","Warnung",#MB_OK | #MB_ICONERROR)
End
EndIf
;-------------Endlosschleife, bis was passiert-----------------------
If CreateNetworkServer(1, Port , #PB_Network_TCP)
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
;-------------case 1,2,3,4---------------------------------------
Case 1
MessageRequester("Server", "Ein neuer Client meldet sich!", 0)
Case 2
MessageRequester("Server", "Daten oder Strings wurden gesendet", 0)
Case 3
DateiName$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", StandardFile$, Pattern$, Pattern)
If DateiName$
ReceiveNetworkFile(ClientID, DateiName$)
EndIf
Case 4
MessageRequester("Server", "Die verbindung zum Client wurde getrennt!", 0)
EndSelect
EndIf
Until Quit = 1
MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
CloseNetworkServer(0)
Else
MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf
End
Client:
Code: Alles auswählen
If InitNetwork() = 0
MessageRequester("Error", "init error", 0)
End
EndIf
Port = 6832
CreateNetworkServer(1, Port , #PB_Network_TCP)
If OpenWindow(8, 200, 200, 400, 300, "Intel IP 1.0", #PB_Window_SystemMenu, 0)
If CreateGadgetList(WindowID(8))
ConnectionID=OpenNetworkConnection("84.174.241.252", Port,#PB_Network_TCP)
If ConnectionID
DateiName$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)
If DateiName$
SendNetworkFile(ConnectionID, DateiName$)
Else
MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
EndIf
EndIf
EndIf
End
Verfasst: 17.06.2006 15:34
von #NULL
ich hab den anderen thread nich gelesen, wo das schon besprochen wurde ("IP adresse herausfinden"), is da nix bei rausgekommen?
wenn du einen router hast, geht das nur mit port-forwarding. ansonsten blockt der die anfragen. zu deinem rechner kommt niemand einfach durch den router durch.
Verfasst: 17.06.2006 15:40
von Joel
und wie programmier ich so einen Router port-forwarding und wie komm ich da durch?
Achso das alte thema war zu unübersichtlich
Verfasst: 17.06.2006 15:45
von #NULL
port-forwarding is einfach eine konfigurationsache deines routers. wenn du anfragen aus dem internet mit deinem rechner empfangen willst, musst du deinen router sagen, er soll eine eingehende anfrage auf einem bestimmten port weiterleiten zu einem (deinem) rechner innerhalb des LAN.
wie diese konfiguration im einzelnen zu machen ist, hängt vom router ab. kannst ja mal die loop-back IP oder auch halt auch die externe IP des router im browser eingeben. mein router hat z.b. eine html-oberfläche. ich hab das portforwarding bei mir auch noch nich hingekriegt (hab so 'n doofen arcor/zyxel). da hast du dann vielleicht eine kathegorie "NAT".
kannst ja mal
hier schaun, ob du eine erklärung für deinen router kriegst.
Verfasst: 17.06.2006 15:49
von Joel
achso 1. wie sag ich dem das?
2. Wenn ich ein Chatprogramm Programmieren will das muss das ja irgentwie die Software erledigen. wie geht dass. Weil bei der Installation von ICQ mussste ich das auch nciht machen oder machen die das anders?
Verfasst: 17.06.2006 15:58
von #NULL
ich hab da auch nich so ein plan, ...
ich glaube z.b. icq nachrichten werden ja nicht direkt an deinen computer gesendet, sondern auf nem icq-server hinterlegt, und dein rechner schaut regelmässig nach ob was auf dem server is. die anfragen gehen also immer nur VON deinem rechner aus (?oder weiß es jemand besser?).
hinzukommt, dass du vermutlich eine dynamische IP hast, also eine die sich ändert, wenn der router sich mit deinem provider neu verbindet. wenn du selber server-stuff bereitstellen willst (z.b. ein chat-programm) müsstest du einem potentiellen client vorher immer erst irgendwie deine aktuelle IP geben. die alternative sind statische IP.
Verfasst: 17.06.2006 15:59
von Thorium
Joel hat geschrieben:achso 1. wie sag ich dem das?
2. Wenn ich ein Chatprogramm Programmieren will das muss das ja irgentwie die Software erledigen. wie geht dass. Weil bei der Installation von ICQ mussste ich das auch nciht machen oder machen die das anders?
Deine ICQ-Installation ist ja auch kein Server. Du hast nur einen Client, der sich zum ICQ-Server verbindet. Wenn du einen ICQ-Ähnlichen Server bei dir betreiben willst, musst du die Ports auch in deinem Router freigeben. Das gild für jede Art von Server. Normalerweise lässt der Router so ziemlich alles raus, aber halt nicht rein um dich zu schützen.
Verfasst: 17.06.2006 16:03
von PBZecke
Hallo Joel!
Ich glaube, dass Dir auch durch das eröffnen eines zweiten Threads nicht
geholfen ist!
Vorschlag:
Da Du ja oft genug ICQ erwänhnst, benutze es doch einfach, und
programmiere ein Spiel, ein anderes kleines Tool, oder mach irgegend etwas
anderes was Spaß bringt...
Ist nicht böse gemeint, eher ein netter Vorschlag
