Extremefall
Mitglied
Hallo,
ich versuche, ein Bild mittels Socketverbindung zu übertragen. Leider kann man die Bilddatei nicht öffnen. Mein Code:
Wie kann ich das Problem lösen? Wie übertrage ich Bilder über Sockets?
ich versuche, ein Bild mittels Socketverbindung zu übertragen. Leider kann man die Bilddatei nicht öffnen. Mein Code:
Code:
// Server
import java.net.*;
import java.io.*;
public class Server {
public Server(int port) throws Exception {
ServerSocket socketServer = new ServerSocket(port);
while (true) {
Socket client = socketServer.accept();
InputStream input = client.getInputStream();
// Changes #start
FileOutputStream fileOut = new FileOutputStream("c:/image.jpg");
byte[] buffer = new byte[1024];
while (client.isConnected()){
int bytesRead = input.read(buffer);
if (bytesRead ==-1) break;
fileOut.write(buffer,0,bytesRead);
}
fileOut.close();
// Changes #end
BufferedReader stdIn = new BufferedReader(new InputStreamReader(
input));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
System.out.println("echo: " + userInput);
}
}
}
}
Code:
//Client
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
static Socket clientSocket;
static BufferedReader in = null;
public static void connectToSoccet(InetAddress IP, int port) {
try {
Socket clientSocket = new Socket(IP, port);
PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(
clientSocket.getOutputStream()));
printWriter.println("Connection established: "+InetAddress.getLocalHost().getHostName());
printWriter.flush();
System.out.println(clientSocket.isConnected());
// Changes #start
File file = new File("c:/screenshot.jpg");
OutputStream out = clientSocket.getOutputStream();
InputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
while (fileIn.available()>0){
out.write(buffer,0,fileIn.read(buffer));
}
fileIn.close();
// Changes #end
clientSocket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Wie kann ich das Problem lösen? Wie übertrage ich Bilder über Sockets?