Client zu Client Daten übertragen

codingboy

Mitglied
Hallo,

ich würde mir gerne ein kleines Chatprogramm schreiben. Die Oberfläche ist ja kein Problem, eine verschlüsselte Übertragung habe ich auch schon realisiert.
Doch wie kann ich mir A) mit einem RECHNER verbinden und B) eine temporäre Datei auf dem jeweils anderen Rechner erstellen?
zu A:
das könnte bestimmt irgendwie über eine IP und einen Port gehen, doch wie bekomme ich diese heraus?

Danke für Antworten!

Gruß,
Daniel
 
D

despikyxd

Gast
ich möchte dir hier nur einen kurzen hinweis geben : versuch es erst garnicht eine dierekte client-to-client verbindung zu realisieren ...
denn in den meisten fällen werden die user dieses systems 1) fremde sein die 2) sicher keine ahnung von NAT und PortForwarding haben oder geschweige denn wie mans einrichtet und 3) gibt es bereits fertige frameworks die NAT-passthrough drauf haben ...

also einfach nach googlen und vorhanden frameworks nutzen
das alles selbst zu implementieren ... da braucht man alleine ewig oder ein kleines team mit spezialisten =P

second : was das mit den daten angeht : wenn du erstmal ne verbindung hast kannst du alles über diese realiseren ... musst nur ein entsprechendes protocol entwickeln
 
D

despikyxd

Gast
ja ... genau die suchst du ...

Sockets sind grundlage jeder netzwerkverbindung

nur noch kleinen tipp am rande : versuch erstmal ne kommunikation über einen server ... gleich eine CTC entwickeln zu wollen wird dich zu schnell entmutigen weil du vieles nicht verstehen und auch nicht zum laufen kriegen wirst ...
 

codingboy

Mitglied
ja, das bedeutet für mich aber PHP.
ich hatte gehofft, es sei anders auch einfach machbar...
so muss ich mir "nur" ein php-skript scheiben, dass gesendete daten speichert, und eines, welches diese daten wieder löscht
das speicherskript muss mit binärdaten umgehen können!!!

ich seh schon, dass wird noch ein wenig arbeit...
 

codingboy

Mitglied
gibt es denn einen weg das programm serverseitig laufen zu lassen, ohne einen vserver oder server zu haben? (also nur webspace mit viel skriptsprachenunterstützung --> bplaced)
 
D

despikyxd

Gast
kurze antwort : NEIN
weil du in der regel über keine auf dem webserver installierte sprache an die SYSTEM-calls kommst *zumindest bei jedem hoster mit ahnung der das zur sicherheit sperrt*

deinen mist mit ZWEI scripts ... ähm ... naja ... du kannst scheinbar auch kein php ... oder zumindest bist du dort genau so n00b wie in java ... du kannst alles in ein script packen ... receiven ... submitten ... storing ... deleting ... du musst nur entsprechende flags verwenden ...

aber das wird dir auch nichts bringen da das keine P2P verbindung ist ... und auch keine geroutete verbindung über einen server ... sondern schlichtes up- und downloading ... das kann man dann auch etwas vereinfachen ...

aber mal erlich : wenn du sowas wie einen chat schon auf java-basis machen willst kommst du um einen richtigen server *ja vserver geht auch* nich drum rum ...
 

Kr0e

Gesperrter Benutzer
Mal kurz am Rande was zu despikyxd-Aussagen:

Es gibt UPNP, ein Protokol das, solang der Router dies unterstützt und auch aktiviert hat, Routereinstellungen von Rechnern im Lan aus realisieren kann. Pidgin, diverse Torrentprogramme und sogar ICQ haben das drauf. Es gibt dafür eine pure Java library.

Aber despikyxd hat im Prinzip Recht, Chatsystem ohne großen Server ist doof. Denk mal an das Speichern von Nachrichten, wenn User offline sind. Ich hatte mich mal vor einiger Zeit mit Verteilten Hashtabellen und Darknets beschäftigt. NAT macht sehr viele coole Möglichkeiten kaputt, aber NAT ist zwingend notwendig, sonst wäre jede Sicherheit dahin.

Meine Meinung dazu: Die Use sollten sich mal mehr mit ihrem Router beschätigen. Würde vieles leichter machen.... Und letztenedes auch den Usern bessere Software ermöglichen..

Gruß,

Chris
 

codingboy

Mitglied
Mit dem Server, finde ich, muss das nicht sein!
Ich bin gerade mal im 1. Semester Info, aber das Programm soll eigentlich nur eine sichere Verbindung zwischen mir und meiner Freundin darstellen. Sonstige Spielereien braucht es einfach nicht...

Achso, was ist NAT (Link)? und weshalb macht dies Sicherheit erst möglich?

Mein Programm arbeitet mit ner selbst gebastelten Verschlüsselung (One-Time-Pad) in Kombination mit Shamirs No-Key-Protokoll (nicht RSA!). Finde ich ziemlich sicher, selbst wenn die gesammten Daten abgefangen werden!
 

Kr0e

Gesperrter Benutzer
Nun, warum NAT Sicherheit bedeutet, siehst du am besten daran, dass es so sau schwer ist, eine direkte Verbindung zwischen 2 Rechnern aufzubauen, die jeweils hinter einem NAT sitzen. Raus gehen die Verbindungen immer, ergo Verbindungen zu Servern sind kein Problem, weder mit TCP noch mit UDP. Doch sobald du einen Rechner hinter einem NAT ansprechen willst, musst du Ports freigeben oder anfangen rumzubastelt udn das, was dabei rauskommt muss uach nicht überall klappen, da es dann kein STandard ist... Wenn du mit deinen Freunden sowas testen/benutzen willst, dann sollten die infach Ports freigeben und ihr hbat keine Hürden mehr! Happy coding :)

PS: NAT steht für Network Address TRanslation. Dein Router z.B. ist eine NAT. Alle Rechner die über deinen Router ins Netz gehen haben die selbe Ipadresse im Internet aber unterschiedliche Ports. Die Ports sind eine Möglichkeit des Routers ankommende Pakete an den richtigen PC im LAN weiterzuleiten. Wenn im Router keine Portweiterleitungen eingerichtet sind, dann weiß der Router nicht wohin es gehen soll und macht die Schotten dicht. Wenn du von innen heraus eine Anfrage an iwas stellst (z.B. an eine Website) dann wird die Antwort des Servers vom Router anhand der IP-Adresse, Portnummer und ich glaube auch anhand von ACK/Seq-Nummern erkannt und an dich weitergeleitet. Wenn die Antwort zu lang braucht, sind die temporär offenen Ports wieder zu. Deshalb muss glaub ich bei TCP immer ein Keep_Alive Signal perdiodisch gesendet werden (Macht TCP von sich aus glaub ich). Kann sein, dass das nicht bei jedem Router nötig is. Vlt. vertuhe ich mich grad auch mit dem Keep_Alive Signal.

Link: Network Address Translation ? Wikipedia
 
Zuletzt bearbeitet:

codingboy

Mitglied
Kannste deine Verschlüsselungsmethode Posten??


Gruß eLogic

Verschlüsselung:
einfach ein XOR über einen key und die message, jeweils als byte behandelt und dann noch ein wenig abhängig vom key, die bits durcheinander gewürfelt.

Übertragung:
a und b wissen NICHTS voneinander, jeder kann jedoch mit dem verschlüsselungsprogramm und einem eigenen (zufälligen, möglichst langem key (2 KB)) verschlüsseln.
a verschlüsselt und schickt die datei an b, die wiederum verschlüsselt sie auch und schickt sie zurück an a. a entschlüsselt und schickt an b, b wiederum entschlüsselt und hat nun die original message.

Voraussetzung ist dafür, dass die verschlüsselung assoziativ ist (klammerung wurscht) und leicht invertierbar ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
P Server/Client Daten empfangen, wenn Daten gesendet werden Netzwerkprogrammierung 9
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
G unvollständige Daten: Http Client-Server-Kommunikation Netzwerkprogrammierung 2
D Daten per Server- Client nur als byte verschicken? Netzwerkprogrammierung 3
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
B Axis2 Webservice mit Client Zertifikat Authentifizierung Netzwerkprogrammierung 3
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
T Jetty mit Client-Zertifikat nur bei spezifischer URL Netzwerkprogrammierung 1
J Einlesen von Servernachrichten von TCP-Client Netzwerkprogrammierung 17
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
T Client zu Client Kommunikation Netzwerkprogrammierung 2
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
ruutaiokwu ständig "sender address rejected: improper use of smtp" bei smtp-client Netzwerkprogrammierung 4
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Chatserver/-client - Code stoppt bei readUTF() Netzwerkprogrammierung 7
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
L Zugriffprobleme Client - Webservice AspenTechnology Netzwerkprogrammierung 0
A Client Client Übertragung Netzwerkprogrammierung 12
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
K Socket Netty Client wirft Fehler! Netzwerkprogrammierung 3
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
U Socket Client mit hash authentifizieren Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
P Server als Client nutzen Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
J Client - Serversocket Netzwerkprogrammierung 1
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
N Fragen zu Sockets Client Netzwerkprogrammierung 3
F Extasys TCp Client extends Funktion Netzwerkprogrammierung 0
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
O Client zwischen XML und JSON auswählen lassen Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
A Socket Wie ein einfacher Multithreads Service mit Telnet als Client mit Observable/Observer gelöst.... Netzwerkprogrammierung 0
K C# Server - Android Client Netzwerkprogrammierung 0
T Application Client NullPointerExc Netzwerkprogrammierung 7
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
H HTTP REST Jersey - PUT-Beispiel von Client senden Netzwerkprogrammierung 0
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
X RMI: Woher kennt der Client das Schnittstellen-Interface? Netzwerkprogrammierung 2
E Thematik Client server Netzwerkprogrammierung 2
D UDP Client empfängt nichts Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Client Anwendung mit zentraler SQL-Datenbank Netzwerkprogrammierung 3
N Client Identifikation eines Servers Netzwerkprogrammierung 1
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
D SSH Client Netzwerkprogrammierung 7
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
B TCP Client Android Netzwerkprogrammierung 3
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
OnDemand Ist Client noch angemeldet? Netzwerkprogrammierung 7
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
D Socket UDP Client reagiert nicht auf spontane Meldungen Netzwerkprogrammierung 5
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
P server - client verbindung (anfänger) Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben