witam,
mam prosta aplikacje do przesylania i wyswietlania plikow graficznych na
soketach problem polega na tym, ze klient odbiera pliki typu bmp,gif,png,
natomiast ma problemy z .jpg, tzn jpg zostaje odebrany dopiero po ponownym
wyslaniu rzadania, ale konczy sie to wyrzuceniem wyjatkow Socketa.
Strumienie sa resetowane po przeslaniu/odebraniu pliku, poniewaz ten sam
strumien sluzy do przesylania komend (String), a bez ponownej
inicjalizacji po prostu nie dziala.
Bardzo bylbym wdzieczny za sugestie co robie nie tak, albo jak to zrobic
inaczej. Kod odpowiedzialny za przesylanie:
serwer:
File tmp = new File(..);
DataInputStream fis = new DataInputStream(
new BufferedInputStream(
new FileInputStream(tmp)));
byte[] data = new byte[fis.available()];
fis.readFully(data);
fis.close();
output.write(data);
output.flush();
output = new DataOutputStream(new
BufferedOutputStream(s.getOutputStream()));
klient:
image = ImageIO.read(input);
//wyswietlanie pobranego obrazka
ImagePreview imgDialog = new ImagePreview(image, ..);
imgDialog.setVisible(true);
input = new DataInputStream(new BufferedInputStream(s.getInputStream()));
Pozdrawiam