Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Threadpushing ist hier unerwünscht, ebenso wie durchgehende Kleinschreibung. Halte dich doch bitte an die Netiquette, der du mit der Anmeldung auf tutorials.de zugestimmt hast. Danke.wie siehts aus?
Könntest du etwas präziser erläutern, was genau du umgeschrieben hast und was dann nicht ging? Und von welchem Datenverlust sprichst du?danke matthias deins hat funktioniert
aber warum nur in png und nicht in jpg?
habs umgeschrieben und gieng nicht
und wie ist der datenverlust von 896 auf 847 kb zu erklären? ;D
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(1234);
Socket client = server.accept();
sendFile(client, new File("C:/test.jpg")); //Es kann jede beliebige Datei verwendet werden
client.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void sendFile(Socket s, File f) throws IOException {
if(f.isDirectory())
throw new IllegalArgumentException("File cannot be a directory.");
OutputStream out = s.getOutputStream();
FileInputStream in = new FileInputStream(f);
byte[] buffer = new byte[512];
for(int i; (i = in.read(buffer)) != -1; ) {
out.write(buffer, 0, i);
out.flush();
}
in.close();
out.close();
}
}
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket serverConnection = new Socket(InetAddress.getLocalHost(), 1234);
receiveFile(serverConnection, new File("received.jpg"));
serverConnection.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void receiveFile(Socket s, File file) throws IOException {
InputStream in = s.getInputStream();
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[512];
for(int i; (i = in.read(buffer)) != -1; ) {
out.write(buffer, 0, i);
out.flush();
}
in.close();
out.close();
}
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.imageio.ImageIO;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(1234);
Socket client = server.accept();
sendPicture(client, new File("D:/test.jpg"), true);
client.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void sendPicture(Socket socket, File f, boolean original) throws IOException {
if(f.isDirectory())
throw new IllegalArgumentException("File cannot be a directory.");
if(original) {
OutputStream out = socket.getOutputStream();
FileInputStream in = new FileInputStream(f);
byte[] buffer = new byte[512];
for(int i; (i = in.read(buffer)) != -1; ) {
out.write(buffer, 0, i);
out.flush();
}
in.close();
out.close();
} else {
BufferedImage img = ImageIO.read(f);
ImageIO.write(img, "jpg", socket.getOutputStream());
//Das Bildformat kannst du hier beispielsweise in ein komprimiertes Format (jpg, png, ect.)
//ändern um weniger Daten über das Netzwerk oder Internet versenden zu müssen.
//Das Format in welches das Bild am Ende gespeichert wird kannst du Anhand der Dateiendung
//in der Client-Klasse ändern.
//Achtung: Dieser Programmteil wird nur ausgeführt, wenn "original == false"!
}
}
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.imageio.ImageIO;
public class Client {
public static void main(String[] args) {
try {
Socket serverConnection = new Socket(InetAddress.getLocalHost(), 1234);
receivePicture(serverConnection, new File("D:/received.bmp"));
serverConnection.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void receivePicture(Socket socket, File file) throws IOException {
BufferedImage img = ImageIO.read(socket.getInputStream());
//Das Speicherformat wird anhand der Dateiendung ausgelesen: "file.getName().substring(file.getName().lastIndexOf('.') + 1)"
ImageIO.write(img, file.getName().substring(file.getName().lastIndexOf('.') + 1), file);
}
}