0
소켓을 통해 파일을 보내는 클라이언트/서버 프로그램을 작성하고 있습니다. 나는 서버 코드에서 파일 객체를 만들지 만, 클라이언트가 보내는 파일은 사용자가 정의한대로 파일을 무엇으로 부를지 모른다. 참고 : 더 큰 파일을 수신하고 싶습니다. .mp3 파일 등 서버 코드 :서버에 파일의 파일 이름을 가져 오는 중
try{
ServerSocket servsock = new ServerSocket(123456);
File myFile = new File(/* I dont know how to get the file name here*/);
while (true) {
Socket sock = servsock.accept();
System.out.println("Connection accepted, ip - port - ");
byte[] mybytearray = new byte[(int) myFile.length()];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
bis.read(mybytearray, 0, mybytearray.length);
OutputStream os = sock.getOutputStream();
os.write(mybytearray, 0, mybytearray.length);
os.flush();
sock.close();
bis.close();
servsock.close();
}
}catch(IOException e){
System.out.println("Error");
}
클라이언트는이 바이트 배치를 호출하는 방법을 서버에 알려야합니다 ... – laune
@laune 어떻게 할 수 있습니까? – joyalrj22
데이터를 보내기 전에 이름이 들어있는 일련의 문자를 보내고 존재하지 않는 파일에서 길이를 부를 수 없으므로 파일 크기도 보내십시오. – laune