Socket: Sende-, Empfangstrategien

Status
Nicht offen für weitere Antworten.

Shiroi

Mitglied
Hallo ich habe da eine Frage,
und zwar möchte ich gerne über einen Socket größere Daten verschicken, aber es muss auch gleichzeitig eine stetige Client-Server Kommunikation vorhanden sein, um z.B. die Dateiübertragung abzubrechen.

Deshalb habe ich mir jetzt überlegt, was da die beste Lösung dafür ist.

Ich benütze einen Buffered(Output/Input)Stream und habe jetzt versucht 2 Sockets von einem Client zu dem gleichen Server aufzubauen. Ein Socket für die Kommunikation, der andere für die Dateiübertragung.
Nun habe ich aber das Gefühl, dass der zweite Socket den ersten irgendwie überschreibt und der Server meldet auch immer nur eine einkommende Socketverbindung.
Kann das sein? Dazu hatte ich leider nichts gefunden ob das funktioniert. Ich habe es einfach mal versucht.

Die andere kompliziertere Variante wäre, wenn das mit den 2 Sockets nicht funktioniert, alles über ein Socket zu verschicken, halt dann nur mit einem extra Packet Header, um zwischen Datenpacketen und Nachrichten zu unterscheiden.
Dort ist dann ja das Problem, den Header zum richtigen Zeitpunkt abzuschicken, da ja immer wieder automatisch ein flush im BufferedOutputStream kommt und der Header am Anfang stehen muss.
Man kann ja zum Glück die max. Größe des Buffers übergeben. Sendet er dann tatsächlich den Buffer nur dann, wenn die max. Anzahl an Bytes im Buffer erreicht wurde, oder hängt das noch von etwas anderem ab? (Außer wenn man selber einen flush macht) und was ist eigentlich der Standardwert?
Wenn das der fall wäre, dann kann ich ja berechnen, wann ich wieder einen Header anfügen muss.
Nagut mir fällt auch gerade auf, dass es relativ egal ist, wann der flush kommt. Ich kann auch einfach nach jeden x Bytes den Header anhängen und eine Längenangabe darin einfügen. Was wäre dann ein geschicktes x?

Kennt jemand noch evtl. eine bessere Sende/Empfang Strategie? Das ist für mich noch ziemliches Neuland.

Danke!
 

anfänger15

Bekanntes Mitglied
hab jetzt nicht alles gelesen aber normalerweiße müßte das mit 2 sockets schon gehen die dürfen aber nicht beide den gleichen port haben also 2 verschiedene ports benutzen dann müßte es gehen
 

Shiroi

Mitglied
Mh ja, aber dann muss ich ja auch 2 verschiedene ServerSockets verwalten und da man ja mehrere Clienten auf einen ServerSocket verbinden kann (oder?) wollte ich es auch nur mit einem versuchen.
 

DocRandom

Top Contributor
Hi Shiroi!

Es geht auch nur mit einem Socket, jedoch mußt Du auf der Serverseite eine art Mesagequeue machen, wo Du dann unterscheidest zwischen, Datenstrom und Commands!

lg
DocRandom
 

anfänger15

Bekanntes Mitglied
das kommt jetzt eben darauf an was für dich besser ist wenn du 2 sockets nimmst wird es eben wesentlich einfacher das ganze zu implementieren dafür ist es eben nicht sehr effizient, wenn du 1 socket nimmst was durchaus auch machbar ist wird es eben schwieriger(aufwändiger)das ganze zu implementieren, dafür ist es resourceschonender

deine entscheidung, möglich ist beides
 

Shiroi

Mitglied
ah ja, ich habe so eine Queue implementiert, aber mir ist da gerade ein grob fahrlässiger Fehler aufgefallen. Ich überschreibe mir selbst mein eigenen akzeptierten Socket...

Die andere Sache die mich leider an diesen 2 Sockets stört, ist die die asynchronität der beide Sende-Sende und Empfang-Empfang Vorgänge. Na ja, beides hat vor und Nachteile, aber vom Daten auswerten her, müssten die 2 seperaten Sockets schneller sein, da man bei den Datenpacketen keine Header interpretieren muss, bzw. nur einen einzigen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
B Versuch mit Socket etwas zu lesen und zu schreiben Netzwerkprogrammierung 15
G Socket Socket Kommunikation Netzwerkprogrammierung 1
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
D Socket-Verbindungen übers Internet Netzwerkprogrammierung 4
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
A TCP multiClientServer mit socket mittels ObjectOutputStream Netzwerkprogrammierung 12
A Socket-Anwendung (BufferedWriter/Reader liest nicht aktuellen Wert) Netzwerkprogrammierung 6
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
x46 Connection reset by peer: socket write error Netzwerkprogrammierung 6
x46 Socket Files per Socket verschicken Netzwerkprogrammierung 1
platofan23 Probleme mit Socket bei Android Studio? Netzwerkprogrammierung 22
platofan23 Socket Hilfe mit Socket Thread und ArrayList Netzwerkprogrammierung 6
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
D new ObjectInputStream(socket.getInputStream()); Netzwerkprogrammierung 15
E Socket Frage Netzwerkprogrammierung 6
D ServerSocket - Socket Verbindungsart Netzwerkprogrammierung 3
T Frage bzgl. Socket-API Netzwerkprogrammierung 1
F TCP Socket auf Verbindungsabbruch prüfen Netzwerkprogrammierung 15
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
I Socket ObjectOutputStream-Socket: Objekt wird falsch übertragen Netzwerkprogrammierung 2
T Socket Socket connections schließen? Netzwerkprogrammierung 2
D Socket Socket OutputStream leeren? Netzwerkprogrammierung 3
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
F Socket Socket in anderen Methoden Netzwerkprogrammierung 1
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
I Socket Netzwerkprogrammierung 1
F Wiederverbinden nach socket Abbruch Netzwerkprogrammierung 1
J 1 Socket - 2 Serversocket Netzwerkprogrammierung 4
T Socket sendet erst nach socket.close() Netzwerkprogrammierung 2
F Socket Verbindungsaufbau abbrechen Netzwerkprogrammierung 3
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
Joew0815 socket event handler Netzwerkprogrammierung 2
F Einfache Socket Verbindung Netzwerkprogrammierung 2
A Socket Socket Receive-/SendBuffersize Netzwerkprogrammierung 0
D Socket server auf Smartphone Netzwerkprogrammierung 9
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
A Socket Socket Server netcat Netzwerkprogrammierung 1
Shams Anfängerfrage zu Server-Socket-Kommunikation Netzwerkprogrammierung 2
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
D Socket Error: java.lang.NullPointerException Netzwerkprogrammierung 1
D TCP Socket funktioniert nicht richtig Netzwerkprogrammierung 3
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
B SSL Socket Netzwerkprogrammierung 2
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
M Client sendet nur, wenn das Socket geschlossen wird Netzwerkprogrammierung 53
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
S Socket (client) verbindet nicht Netzwerkprogrammierung 6
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
P Warum kann ich kein Socket aufbauen? Netzwerkprogrammierung 12
S Socket SSL Socket und Sun/Oracle Java Netzwerkprogrammierung 5
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
precoc Server Socket Start / Stop Netzwerkprogrammierung 5
N SOCKET mehrere Requests, keep Alive serverspezifisch? Netzwerkprogrammierung 3
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
C Socket Systemsperren mit Socket Netzwerkprogrammierung 4
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
D Socket Multithread-Socket | Kurz vor dem Ziel Netzwerkprogrammierung 7
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Dynamische Socket-Thread Erzeugung Netzwerkprogrammierung 2
D Socket Socket absichtlich so schließen, dass Gegenseite java.net.SocketException: Connection reset wirft Netzwerkprogrammierung 4
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
S Socket-Frage zu einem LAN-Spiel. Netzwerkprogrammierung 3
A UDP verlorene Pakete/ socket.receive zu langsam Netzwerkprogrammierung 27
CookieSoft Socket Packet per Socket Netzwerkprogrammierung 8
CookieSoft Fehler bei Socket Netzwerkprogrammierung 4
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
T Per Socket auf POP3 zugreifen? Netzwerkprogrammierung 7
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
Z Socket Socket-Thread falsch? Netzwerkprogrammierung 5
Helgon Socket Socket IP Frage + Tutorial/Bücher Netzwerkprogrammierung 5
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T Socket String zu Socket Netzwerkprogrammierung 26
M Datenübertragung per Socket nur alle 200ms Netzwerkprogrammierung 4
C Socket Socket: Connection timed out Netzwerkprogrammierung 3
T Socket blockierter Socket Netzwerkprogrammierung 4
C Socket Probleme beim Lesen und Schreiben aus/in einen Socket Netzwerkprogrammierung 2
T Alternative Socket mit Verbindungsabbruch Erkennung Netzwerkprogrammierung 2
M Socket, Ende Dateitransfer Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
D RMI oder Socket Netzwerkprogrammierung 4
H Socket Socket listening Netzwerkprogrammierung 11
D Client Socket mit Eventlistener? Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Netzwerkprogrammierung 18
N Socket geht auf Windows, aber auf Mac nicht ? Netzwerkprogrammierung 3
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
G Exception: Connection reset by peer: socket write error Netzwerkprogrammierung 2
M SSl Socket Server und openssl key Netzwerkprogrammierung 3
J Socket Socket Programmierung. Wie anfangen? Netzwerkprogrammierung 4
DEvent Keine IOException beim schreiben Socket Netzwerkprogrammierung 3
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
Dit_ FTP Download | "PassiveMode"-Socket öffnen Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben