Ich habe diesen Code, der eine Textdatei vom Client sendet und in Server-Seite Wie kann ich diesen Code ändern, senden Sie eine Bilddatei des Typs "PNG" statt zu senden Eine Textdatei .. Wie kann ich Bytes für diesen Job verwendenSenden eines Bildes vom Client an den Server im Socket
im Code ist es den Dateiinhalt kopieren und in eine Zeichenfolge und dann schrieb er wieder in eine neue Zeichenfolge in der Server-Seite die Client-Datei haben mehr als eine Datei und Sie wählen den Text, den Sie kopieren möchten.
dies ist der Server-Code
public static void main(String[] args){
try{
ServerSocket serverSocket = new ServerSocket(2012);
System.out.print("Running");
Socket socket= serverSocket.accept();
System.out.println("Client connected");
PrintWriter pw=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String dir = "C:\\Users\\alaqra senpai\\Desktop\\FTP";
File f=new File(dir);
File fl[]=f.listFiles();
Arrays.sort(fl);
int c=0;
for(int i=0;i<fl.length;i++){
if(fl[i].canRead() && (fl[i].toString().endsWith(".txt"))){
c++;
}
}
pw.println(" "+c+".txt file founde , listed A to z");
for (int i=0;i<fl.length;i++){
if((fl[i].toString().endsWith(".txt"))){
pw.println(" "+(i) + " "+ fl[i].getName() + " " +fl[i].length()+"byte");
}
}
pw.println("_");
pw.flush();
String tem=br.readLine();
int temp=Integer.parseInt(tem);
temp-=48;
System.out.println("index " +temp);
boolean files=false;
int index=0;
if(temp>=0 && temp<=fl.length){
files=true;
index=temp;
}else{
files=false;
}
if(files){
try{
File ff=new File(fl[index].getAbsolutePath());
FileReader fr=new FileReader(ff);
BufferedReader brf=new BufferedReader(fr);
String s;
while((s=brf.readLine())!=null){
pw.println(s);
}
pw.flush();
if(brf.readLine()!=null){
System.out.println("File read succeful,closing socket");
}
}catch(IOException e){
System.err.println("error"+e);
}
}
br.close();
socket.close();
}catch(IOException e){
}
}
und das ist der Client-Code
public static void main(String[] args){
try {
//declaration and initialization client socket
Socket socket = new Socket(InetAddress.getByName("Localhost"), 2012);
//read and write on socket
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//read from console
BufferedReader bu = new BufferedReader(new InputStreamReader(System.in));
String s;
while ((br.read()) != '_') {
System.out.println(br.readLine());
}
System.out.println("enter file index no: ");
out.println(bu.read());
//force write buffer
out.flush();
//file receive process
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Recevie.png")));
while ((s = br.readLine()) != null) {
bw.write(s);
}
//force write buffer to server
bw.close();
if (br.readLine() == null) {
System.out.println("File Write Successful,Socket closing");
}
} catch (Exception e) {
System.out.println("Error" + e);
}
} catch (IOException ex) {
Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
}
}