Wollte mal versuchen ein Bild von nen Server zu nen Client zu schicken, und auf ein JLabel zu pflastern.
Funktioniert aber irgendwie nicht, bekomme nur Mist auf der Client-Seite raus.
Kann mir wer bitte schnell sagen, was ich falsch gemacht habe?
Funktioniert aber irgendwie nicht, bekomme nur Mist auf der Client-Seite raus.
Kann mir wer bitte schnell sagen, was ich falsch gemacht habe?
Java:
package core;
import java.io.File;
import java.net.ServerSocket;
import java.net.Socket;
import javax.imageio.ImageIO;
public class Main
{
public Main() throws Exception
{
ServerSocket serverSocket = new ServerSocket(100);
Socket socket = serverSocket.accept();
ImageIO.write(ImageIO.read(new File("image.jpg")), "jpeg", socket.getOutputStream());
}
public static void main(String[] args) throws Exception
{
new Main();
}
}
Java:
package core;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main
{
public Main() throws Exception
{
Socket socket = new Socket("127.0.0.1", 100);
List<Byte> byteList = new ArrayList<Byte>();
int data = 0;
while((data = socket.getInputStream().read()) > 0)
byteList.add((byte)data);
JFrame frame = new JFrame("lol");
frame.setSize(200, 200);
byte[] byteArray = new byte[byteList.size()];
for(int i = 0; i < byteList.size(); i++)
{
byteArray[i] = (byte)(byteList.get(i) & 0xff);
System.out.println(byteArray[i]); //Output the received Data's
}
BufferedImage image = ImageIO.read(new ByteArrayInputStream(byteArray));
JLabel label = new JLabel(new ImageIcon(image));
label.setBounds(100, 100, 200, 200);
frame.add(label);
frame.setVisible(true);
}
public static void main(String[] args) throws Exception
{
try
{
new Main();
}
catch (SocketException e)
{
//TODO: Empty, to watch only Exceptions of Server.
}
}
}