안드로이드 개발 질문/답변
(글 수 45,052)
서버측:
ServerSocket serverSock = new ServerSocket(port);
Socket socket = serverSocket.accept();
클라이언트측:
Socket socket = new Socket(serverIP, port);
위와 같이 소켓을 생성해 줬는데요...문제는 파일 전송시에 동기화가 되지 않는거 같네요...
위도우 같은 경우 tcp 통신시 send 에서도 블락이 되는데 java 는 그런것을 자기가 알아서 설정해야 하나요?
File file = new File(Path, str);
OutputStream outputStream = socket.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(file);
synchronized (si) {
si.add("File Transfer Request Success");
}
for(int i = 0 ; i<file.length() ; i++){
outputStream.write(fileInputStream.read());
}
파일 전송을 담당한 스레드의 일부 입니다.
디버깅 하면서 봐서 그런건지 아님 다른 메소드로 동기화를 설정해 줘야 하는 건지 잘 모르겠네요.
도움 부탁 드립니다.