Dateien über Sockets versenden?

Status
Nicht offen für weitere Antworten.
C

climber

Gast
Hi zusammen,

ich habe einen kleinen Chat programmiert. Soweit ist alles ok, funktioniert alles ohne Probleme. Nun möchte ich gerne noch eine Funktion einbauen, mit der ich Dateien versenden kann. Ich habs mir so gedacht(wenn ich total falsch liege, dann korrigiert mich bitte):
Ich erstelle aus den Input-und Outputstreams eines Clients(Sockets) ein ObjectInput-und OutputStream mit dem ich dann Objekte mit writeObject(Object object) versenden kann(z.B. ein File Objekt).
Nun aber gibt es irgendwie Probleme beim erstellen dieser Streams, das Programm kackt dabei irgendwie ab???

Könnt ihr mir vielleicht n bisschen unter die Arme greifen, wäre echt nett

hier ist noch der code-Ausschnitt bei dem es glaub ich Probleme gibt:
Code:
....
private void connectServer(){
		try{
			clientSocket= new Socket(host, port);
			serverIn= new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
			serverOut= new PrintWriter(clientSocket.getOutputStream(), true);
			fileIn= new ObjectInputStream(clientSocket.getInputStream());
			fileOut= new ObjectOutputStream(clientSocket.getOutputStream());
......
lg stefan[/code]
 

Sky

Top Contributor
Anonymous hat gesagt.:
Nun aber gibt es irgendwie Probleme beim erstellen dieser Streams, das Programm kackt dabei irgendwie ab???

Ersetze
- "irgendwie Probleme" durch eine konkrete Beschreibung
- "beim erstellen dieser Streams" durch die genaue Stelle (Zeile)
- "das Programm kackt dabei irgendwie ab" durch Exception ect.

und Hilfe ist Dir gewiss.
 
C

climber

Gast
also viel besser kann ich es leider auch nicht beschreiben, da keine Exception geworfen wird, zumindest wird nichts angezeigt!
aber ich kann das Problem auf die beiden Zeilen einschränken wo die beiden Objekte fileIn und fileOut initialisiert werden. Wenn ich die diese Zeile heraus nimm, hängt sich das Programm auf:
Code:
fileOut= new ObjectOutputStream(clientSocket.getOutputStream());

wenn ich die andere Zeile heraus nimm und die wieder rein mache:

Code:
//fileIn= new ObjectInputStream(clientSocket.getInputStream());
			fileOut= new ObjectOutputStream(clientSocket.getOutputStream());

dann wird diese Exception geworfen:
Code:
*** java.net.ConnectException: Connection refused: connect


könnt ihr damit was anfangen???
 
C

climber

Gast
sorry, aber das hilft mir jetzt auch nicht grad weiter

das Problem besteht immer noch


lg stefan
 
B

Beni

Gast
Also was das Problem ist weiss ich nicht, aber ich kann dir sagen, dass dir der ObjectOuput/InputStream nichts nützt.

Denn der wird zwar toll den Namen der Datei versenden, nicht aber die Datei selber... du musst die Datei schon mit einem FileInputStream lesen, die Bytes einzeln schicken, und auf der anderen Seite wieder über einen FileOutputStream auf die Festplatte schreiben.
 
S

stiewen

Gast
Vll hilft dir die Info weiter, dass du so maybe net übers INet Connecten kannst... heißt: wenn deine IP net in deinem lokalen Netzwerk ist, dann kannst du net connecten ... ist bei mir jedenfalls so ...
wenn doch: SAG MIR BESCHEID WIE DU ES MACHST!!!!!!!!!!!!!!!!!!!! :D :D :D :D :D :D
 

The_S

Top Contributor
Hab gerade das selbe Problem. Habe mittlerweile wahrscheinlich schon alle möglichen kombinationen ausprobiert aber erfolglos ... Momentan sieht es so aus

Server
Code:
		while (true) {
			try {
				ds = dataPort.accept();
			}
			catch (IOException e) {
				e.printStackTrace();
			}
			new Thread(new Runnable() {
				public void run() {
					try {
						Socket dataSocket = ds;
						System.out.println("Server OutputStream");
						ObjectOutputStream temp = new ObjectOutputStream(new GZIPOutputStream(ds.getOutputStream()));
						System.out.println("Server InputStream");
						ObjectInputStream ois = new ObjectInputStream(new GZIPInputStream(ds.getInputStream()));
						System.out.println("Server fertig");
						Object incomming = null;
						while (!dataSocket.isClosed()) {
							if ((incomming = ois.readObject()) != null) {
								servd.handle(incomming);
							}
						}
					}
					catch (IOException e) {
						e.printStackTrace();
					}
					catch (ClassNotFoundException e) {
						e.printStackTrace();
					}
				}
			}).start();
		}

Client
Code:
		try {
			Object toRead = null;
			System.out.println("Client InputStream");
			ois = new ObjectInputStream(new GZIPInputStream(data.getInputStream()));
			System.out.println("Client OutputStream");
			oos = new ObjectOutputStream(new GZIPOutputStream(data.getOutputStream()));
			System.out.println("Client fertig");
			while (!data.isClosed()) {
				if ((toRead = ois.readObject()) != null) {
					clientd.handle(toRead);
				}
			}
		}
		catch (IOException e) {
			e.printStackTrace();
		}
		catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

Ausgabe beim Server schaut so aus

Server hat gesagt.:
Server OutputStream
Server InputStream

und beim Client so

Client hat gesagt.:
Client InputStream

stiewen hat gesagt.:
Vll hilft dir die Info weiter, dass du so maybe net übers INet Connecten kannst... heißt: wenn deine IP net in deinem lokalen Netzwerk ist, dann kannst du net connecten ... ist bei mir jedenfalls so ...
wenn doch: SAG MIR BESCHEID WIE DU ES MACHST!!!!!!!!!!!!!!!!!!!! :D :D :D :D :D :D

Wenn du n Router hast der Dynamic DNS unterstützts funktionierts :wink: .
 

The_S

Top Contributor
OK, ohne GZIPInput/Outputstream gehts. Aber das will ich so eigentlich net. Weiß jemand warum er blockiert?
 
G

Guest

Gast
gzipstreams warten erst bis sie genügend daten haben, um sie zu senden. so kann der stream nicht initialisiert werden, weil gzip erst sendet, wenn er genügend zusammen hat. gzip ist leider ungeeignet für netzwerktstreams...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
M Dateien über TCP/IP senden Netzwerkprogrammierung 18
R Mehrere Dateien über einen Socket senden Netzwerkprogrammierung 2
G Probleme mit Firewall beim empfangen von dateien über socket Netzwerkprogrammierung 6
C Verzeichnisstrukturen & Dateien über Socketverb. übertra Netzwerkprogrammierung 12
T MP3 Dateien Stream Netzwerkprogrammierung 3
I Kleine Dateien senden Netzwerkprogrammierung 3
F HTTP HTTP-Download: Dateien in einem Verzeichnis ermitteln Netzwerkprogrammierung 8
D Aus einer URL die Dateien lesen Netzwerkprogrammierung 5
D HTTP Checksumme von Dateien abfragen Netzwerkprogrammierung 2
Semox HTTP Webserver: Externe Dateien werden nicht verwendet. Netzwerkprogrammierung 10
Weltall 7 HTTP Dateien an PHP-Skript senden Netzwerkprogrammierung 11
J Mit der File Api Dateien von anderen Rechnern lesen ? Netzwerkprogrammierung 3
V Problem beim Senden von Dateien Netzwerkprogrammierung 4
E Upload großer Dateien? Netzwerkprogrammierung 5
D dateien kopieren, am localhost funktionierts, im netz nicht Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
M dateien übertragen, probleme mit versch. Strömen? Netzwerkprogrammierung 4
V Dateien Auflisten Netzwerkprogrammierung 3
flashfactor Dateien im Netzwerk kopieren Netzwerkprogrammierung 2
I Dateien schnell/synchron senden Netzwerkprogrammierung 2
S Dateien versenden Netzwerkprogrammierung 16
S Dateien auf einem HTTP Server Netzwerkprogrammierung 2
N *.* Dateien versenden im Lan Netzwerkprogrammierung 5
O Dateien von einem Server laden Netzwerkprogrammierung 3
T Dateien wia P2P Connection versenden Netzwerkprogrammierung 2
W Server schickt Dateien jede 3 Sekonden Netzwerkprogrammierung 3
A FileSend - Dateien verschicken Netzwerkprogrammierung 19
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
E Java über Socket ins Internet? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben