Seite 1 von 2

String an IP-Adresse senden

Verfasst: 01.04.2012 17:46
von Martin66119
Einen schönen Sonntag,

ich hoffe mir kann jemand mit einem Beispielcode helfen, wie man von einer bekannten IP-Adresse (also meiner) übers Internet zu einer anderen IP-Adresse (zu meinem Bekannten) einen String senden kann und dieser auf der anderen Seite angezeigt wird.. Ich hoffe es gibt da einen kleines Beispiel dafür, das ich verstehe.

Wäre sehr nett wenn mir jemand helfe kann.

Grüße
Martin

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 17:55
von ts-soft

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 19:27
von Martin66119
Vielen Dank TS-Soft,

die Network-Befehle hatte ich gefunden. Ich hatte aber gehofft, dass es irgendwo ein Beispielprogramm gibt, das ich probieren und mir Zeile für Zeile anschauen kann, damit ich alles verstehe. Vielleich hast du oder jemand eins.

Grüße und Danke
Martin

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 19:35
von Sirius-2337
Auf der von ts-soft verlinkten Seite befinden sich doch zwei Beispielcodes.
Die kannst du so übernehmen, du musst nur bei "NetworkClient.pb" die IP-Adresse von "127.0.0.1" auf deine IP ändern und höchst wahrscheinlich eine Portweiterleitung in deinem Router einstellen.

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 20:08
von Martin66119
Hallo Sirius-2337,

vielen Dank!

Im Client Programm trage ich also meine IP-Adresse ein, die ich gerade im Internet zugeteilt bekommen habeoder die mit der ich auf den Router zugreife? . Und dann noch! Wie stelle ich die Portweiterleitung im Speetport W701 ein?

Wie du siehst habe ich keine Ahnung!

Ich starte also auf meinem rechner das Serverprogramm und z.B auf einem zweiten rechner bei mir zu Hause das Clientprogramm. Dann könnte ich also zwischen beiden daten austauschen. Ist das richtig?

Grüß
Martin

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 20:19
von ts-soft
Willst Du über das Internet oder nur über das lokale Netzwerk?
Zum testen würde ich erstmal den Server und Client auf demselben
Computer laufen lassen, das geht dann über den lokalhorst "127.0.0.1"!

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 20:45
von STARGÅTE
@Martin66119

Wenn du nicht weißt, wie du an deinem Router eine Portweiterleitung einrichten kannst, kann dir hier auch keiner mit einem Beispielcode helfen, dar dieser ja dann trotzdem keine Portweiterleitung einrichtet.

Wenn du nur in deinem LAN etwas testen möchtest, genügt die eingabe der lokalen Netzwerk IP (meist 192.168.0.x) und der Beispielcode sollte laufen

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 21:07
von Martin66119
Hallo TS-Soft,

ich habe nun beides auf dem selben PC am laufen. Es klappt.

Was ich letztendlich wissen möchte oder vorhabe, ist etwas übers Internet zu senden. MeinRouter hat die IP "192.168.2.1".

Grüße
Martin

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 21:24
von ts-soft
Da Du keine Feste IP im Internet hast, musst Du diese ermitteln, z.B. hier: http://www.wieistmeineip.de/
Ansonsten gibt es so Seiten, wo man sich anmeldet und eine dynamische IP bekommt, die ist dann unter
einer URL erreichbar: z.B hier weiter Lesen: http://www.aidex.de/software/webserver/ ... he-ip.html
Den genutzten Port musst Du in Deinem Router-Menü freigeben, so das die Daten auch nach draußen
wandern bzw. nach innen weitergeleitet werden, außerdem ist der Port in der Firewall freizugeben.

Diese Dinge haben allerdings recht wenig mit PureBasic zu tun, das sind Netzwerkgrundlagen die Du Dir
woanders, sprich Wikepedia u.ä. erarbeiten solltest.

Re: String an IP-Adresse senden

Verfasst: 01.04.2012 21:47
von Martin66119
Hallo TS-Soft!

client:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832

ConnectionID = OpenNetworkConnection("79.196.61.67", Port); Habe ich von "Wie ist meine IP"
If ConnectionID
  MessageRequester("PureBasic - Client", "Client connected to server...", 0)
  ;For i = 0 To 2
  Input$ = InputRequester("Titel", "Bitte machen Sie Ihre Eingabe:", "Ich bin die Standardeingabe.")
  SendNetworkString(ConnectionID, Input$)
  ;Next i 
  MessageRequester("PureBasic - Client", "A string has been sent to the server, please check it before quit...", 0)
  
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
  
End  
server:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
*Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
      ClientID = EventClient()
  
      Select SEvent
      
        Case #PB_NetworkEvent_Connect
          MessageRequester("PureBasic - Server", "A new client has connected !", 0)
  
        Case #PB_NetworkEvent_Data
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          ReceiveNetworkData(ClientID, *Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(*Buffer), 0)
  
        Case #PB_NetworkEvent_File
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
          ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
  
        Case #PB_NetworkEvent_Disconnect
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connection...", 0)
          Quit = 1
    
      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   

In meinem Router habe ich nun unter

Netzwerk / NAT & Portregeln

unter Umgeleitete Ports - Öffentlich und Umgeleitete Ports - Private Client den Port 6832 eingetragen.

Nun kommt aber die Fehlermeldund Can´t create the server (port in use?)

Warum gehts denn nicht.

Grüße
martin