String an IP-Adresse senden

Für allgemeine Fragen zur Programmierung mit PureBasic.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

String an IP-Adresse senden

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: String an IP-Adresse senden

Beitrag von ts-soft »

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Re: String an IP-Adresse senden

Beitrag 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
Sirius-2337
Beiträge: 71
Registriert: 29.05.2010 20:55

Re: String an IP-Adresse senden

Beitrag 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.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Re: String an IP-Adresse senden

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: String an IP-Adresse senden

Beitrag 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"!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: String an IP-Adresse senden

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Re: String an IP-Adresse senden

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: String an IP-Adresse senden

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Re: String an IP-Adresse senden

Beitrag 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
Antworten