Netzwerk: Daten übertragen
Übersicht

GeemanBetreff: Netzwerk: Daten übertragen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo leute,
ich habe mal eine frage, die zwar schon einige vor mir gestellt haben, wobei ich aber aus den antworten nicht schlau geworden bin. und zwar: wie kann man auf eine einfache methode z.b. einen string per tcp oder udp zu einem anderen rechner schicken? ich hab das mal mit udp versucht, klappt aber iwie nicht. ich bin eher noch ein n00b (, deshalb nich über den code usw weglachen... ![]() Server: Code: [AUSKLAPPEN] Graphics 800, 600
iport = 4000 oport = 4001 udp_rd = CreateUDPStream(iport) udp_wr = CreateUDPStream(oport) While Not KeyDown(1) sss$ = Input("> ") WriteString(udp_wr, sss$) SendUDPMsg udp_wr,"xxx.xxx.xxx.xxx" Wend CloseUDPStream udp_wr CloseUDPStream udp_rd und hier der Client: Code: [AUSKLAPPEN] Graphics 800, 600
iport = 4000 oport = 4001 udp_rd = CreateUDPStream(iport) udp_wr = CreateUDPStream(oport) While Not KeyDown(1) rd = RecvUDPMsg(udp_rd) If rd <> 0 Then n = ReadAvail(udp_rd) If n > 0 Print ReadString$(udp_rd) EndIf Wend CloseUDPStream udp_wr CloseUDPStream udp_rd ich habe zwei rechner über hamachi verbunden und die dementsprechende IP genommen und für "xxx.xxx.xxx.xxx" eingegeben. was ist daran falsch? was muss ich noch ändern / hinzufügen? ich weiß schon, dass das schon oftmals gefragt wurde, aber über eine eindeutige, klare antwort, wie das ganze funktioniert, wäre ich sehr dankbar! Geeman |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was soll "SendUDPMsg udp_wr,"xxx.xxx.xxx.xxx"" bedeuten ?
Die IP muss ein Integer sein, such mal im Forum nach "INT_IP". Wenn dass dann nicht klappt, schreib hinter SendUDPMsg als Port oport, also den Port mit dem du sachen verschikst. mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Geeman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
für "xxx.xxx.xxx.xxx" habe ich die hamachi-ip von dem 2. rechner eingesetzt... ich hab das mit dem INT_IP-zeux probiert, jedoch ohne erfolg... ich hatte das ganze zuerst auch mit tcp probiert, nur auch erfolglos. könnte nicht irgendwer einfach einmal (und dann erübrigen sich die ständigen fragen danach) einen server-code und den passenden clienten-code posten? (ob das nun tcp oder udp wär, wär mir persönlich völlig egal) das wär echt mal ne richtige hilfe ![]() (ist das über hamachi überhaupt so ohne weiteres möglich?) Geeman |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
TCP solltest du verwenden, wenn du sicher gehen möchtest, dass die daten auch fehlerfrei ankommen.
Und für UDP brauchste keine zwei Ports. schau dir mal in der hilfe OpenTCPStream ![]() ![]() ![]() Damit müsstest du klar kommen. cu, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Geeman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hatte ich vorher auch schon gemacht...
naja, ich werd noch nen bisschen rumprobieren... vllt wirds ja noch was ![]() Geeman |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ....
ich selber widme mich auch gerade der UDP Problematik. Und du wirst feststellen das es fiele dinge gibt. Die dir den Spass verderben werden. Das erste was mir auffällt ist das der Sende Port fehlt. Du must bei SendUdpMsg () den In Port des Empfängers mit angeben. Dann must du die IP im Dot Format in eine Integer umwandeln. Dazu gibt es hir im Forum eine Funktion die INT_IP() heist. Die ist in etlichen beispielen zu finden. Dabei ist noch wichtig ob du die beiden Codes auf einem oder Zwei separaten Rechner Startest. Den du kannst keine Nachicht über ein und dieselbe IP und den gleichen Ports Senden und empfangen. 2 mal die Gleiche IP , dann benötigst du für den Host 8001/8002 und der Client 8003/8004 Dabei ist dann noch wichtig ob die IP eine Locale oder die Internet IP ist. Ist es die Locale. Sollte es so funktionieren . Hast du eine Internet IP angegeben. Dann Funktioniert das nicht. Ein senden über das Internet an die sendende IP funktioniert in der regel nicht. Eine Locale Ip ist zum Beispiel "127.0.0.1" Aber auch "192.168.1.15" ist eine Locale IP. Aber eine die ein Router vergeben hat. Ein Beispiel. IP des Client = "84.123.0.1" IP des Host = "84.123.0.1" SendUDPmsg(UdpOutPort,INT_IP("84.123.0.1"),ClientUdpInPort) Das geht ins leere. Die Server Im Internet leiten eine solche nachricht auf sich selber nicht weiter. Du must erst ermitteln ob die nachricht Local oder über das Internet an eine von deiner abweichenden Ip geht. Code werde ich hir nicht Posten. Experimentire etwas rum. Das ist zwal gerade bei Internet sachen echt ätzend. Aber der Lern Effect ist gewaltig. Gruss TFT |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Geeman |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die hinweise.
vllt is das ja mit tcp nen bisschen leichter... ich hab mal nen bisschen rumprobiert und hatte mit folgenden codes erfolg: server Code: [AUSKLAPPEN] Graphics 800,600
;server server = CreateTCPServer(8080) If server <> 0 Print "Server erstellt." Delay 1000 Else Print "Fehler beim Erstellen" Goto ende EndIf While Not KeyDown(1) stream = AcceptTCPStream(server) If stream Print ReadString$(stream) Delay 2000 Else Print "Warte..." Delay 1000 EndIf Wend .ende CloseTCPServer server Delay 1000 der client: Code: [AUSKLAPPEN] Graphics 800,600 ;client ip$ = Input("Server-IP: ") Print "Versuche, zu verbinden..." client = OpenTCPStream(ip,8080) If client <> 0 Print "Mit Server verbunden." Delay 1000 Else Print "Fehler beim Verbinden." Goto ende EndIf While Not KeyDown(1) satz$ = Input("> ") Print "Sende..." WriteString client,satz Print"...gesendet." CloseTCPStream client client = OpenTCPStream(ip,8080) Wend .ende CloseTCPStream client Delay 1000 leider musste ich beim clienten den tcpstream immer wieder neu öffnen, da ich sonst nur eine nachricht erfolgreich versenden konnte. geht das iwie noch anders? ![]() zweitens habe ich es noch nicht hinbekommen, dass der server dem clienten (und nicht andersrum wie im bsp) einen string schickt... wie kann man hinkriegen? (thx 4 ur help) Geeman |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht das schliessen des Streams aus der schleife nehmen? ôo
Versuch mal deinen Code einzurücken. Und verwende lieber Function und kein Goto. Code: [AUSKLAPPEN] Function ende() CloseTCPStream(client) End End Function |
||
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
und falls du noch ein paar infos oder beispiel brauchst kannst du im codearchiv jede menge udpcodes und tcpcodes finden...die suche ist den freund ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group