Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15329] Re:델파이에서 보낸 파일을 안드로이드에서 수신 하는 프로그램짜고있습니다.
눈팅이 [songy1] 2384 읽음    2014-11-10 18:00
일단 실제 FileSocket에서 수신이 안되는것이 확실한가요?
자바소스를 봤을때는 특정부분에 예외가 발생하면 발생하면 수신이 제대로 되었는지조차 확인이 안될것같은데요..?

일단 아래와같이 처리를 해주셔야 예외가 발생했을때 무엇때문인지라도 확인이 가능하겠지요?

변수 선언 또는 생성코드들...
try {
    자바코드들...
} catch(Exception e) {
    Log.i(e.ToString());
} finally {
    각종해제코드들...
}

그리고 String fName = dis.readUTF(); 이구문이 파일생성시 파일명을 넣어주는부분인것같은데
readUTF() 메소드를 통해서 해당변수에 파일이름이 아닌 데이터자체를 넣고있네요...
스트림의 내용에따라 파일명규칙위반 문자가들어 오면 File f = new File(fName); 위치에서 예외가 발생하겠죠?

참고로 안드로이드에서 파일을 저장시 기본적으로 앱에서만 사용할 수 있는 내부스토리지에 저장이됩니다. 혹시
위 데이터자체 내용이 파일의 이름을 나타내는것이었고, 그경로가 외부스토리지 경로라면 manifest에서 설정을 추가해줘야합니다.

※ 아, 그리고 델파이쪽 코드도 FileStream.Free; 구문이 예외상황이 없으면 해제되는 일은 없겠네요..



Jinzeros 님이 쓰신 글 :
: 내용은 제목과 같이 델파이에서 보낸파일을 안드로이드에서 수신하는 프로그램입니다.
:
: 안드로이드 ... 즉, 자바는 처음하는데... 잘모르겟습니다;;
:
: 고수님들 부탁드립니다. ㅠ 참고로 Client에서 Server에 접속은 됩니다. 메시지 송수신은 잘됩니다.
:
: 파일이랑 스트링 분리하라고 인터넷에서 본것같아 2개를 분리해뒀습니다.
:
: File 송수신 FileSocket 수신이 안됨.(연결은 되어있음)
:
: 메시지 송수신 MsgSocket  정상적으로 잘됨.(아래 소스에는 없습니다.)
:
: # delphi 7   ServerSocket
: =========================================================================
:          sFileName := 'c:\sample.bmp';
:          try
: //            FileStream := TFileStream.Create(sFileName, fmOpenRead);
:             FileStream := TFileStream.Create(sFileName, fmOpenRead or fmShareDenyWrite);
:
:             FileStream.Position := 0;
:       // Add the length of the data, so the client will know how much data to expect.
:       // Append #0 so it can determine where the size info stops.
:             for i:= 0 to IdServer.Socket.ActiveConnections - 1 do
:             begin
:                IdServer.Socket.Connections[i].SendText(IntToStr(FileStream.Size) );
:                IdServer.Socket.Connections[i].SendStream(FileStream);
:             end;
:          except
:             FileStream.Free;
:          end;
: =========================================================================
:
: # Android  ClientSocket
: =========================================================================
:                     DataInputStream dis = new DataInputStream(fileRecevSocket.getInputStream());
:                     Log.i("tree","********************");
:                
:                
:                     Log.i("tree","***AAAAAAAAAAAAAAAA***");                   
:                     String fName = dis.readUTF();
:                     Log.i("tree","파일명 :" + fName + "을 전송 받았습니다.");
:                     fName = fName.replaceAll("a", "b");
:                     // 파일을 생성하고 파일에 대한 출력 스트림 생성
:                     File f = new File(fName);
:                     fos = new FileOutputStream(f);
:                     bos = new BufferedOutputStream(fos);
:                     Log.i("tree","파일명 :" + fName + "파일을 생성하였습니다.");
:
:                     //바이트 데이터를 전송받으면서 기록
:                     int len;
:                     int size = 4096;
:                     byte[] data = new byte[size];
:                     while ((len = dis.read(data)) != -1)
:                     {
:                         bos.write(data, 0, len);
:                     }
:    
:                     bos.flush();
:                     bos.close();
:                     fos.close();
:                     dis.close();
:                     Log.i("tree","파일 수신 작업을 완료하였씁니다.");
:                     Log.i("tree","받은 파일의 "
:                             + ""
:                             + "사이즈 : " + f.length());
: =========================================================================

+ -

관련 글 리스트
15328 델파이에서 보낸 파일을 안드로이드에서 수신 하는 프로그램짜고있습니다. Jinzeros 2192 2014/11/07
15329     Re:델파이에서 보낸 파일을 안드로이드에서 수신 하는 프로그램짜고있습니다. 눈팅이 2384 2014/11/10
15332         Re:Re: 파일 분할하여 송신하는 법을 알고싶습니다. Jinzeros 2017 2014/11/12
15334             Re:Re:Re: 파일 분할하여 송신하는 법을 알고싶습니다. 눈팅이 3364 2014/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.