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
[15332] Re:Re: 파일 분할하여 송신하는 법을 알고싶습니다.
Jinzeros [takeout1] 2017 읽음    2014-11-12 17:01
네 감사합니다. 수정하였고요.
근데 하나더 질문이있는데...

Delphi에서 file을 분할해서 보내고싶은데 어떻게보내는지 알고싶습니다.


눈팅이 님이 쓰신 글 :
: 일단 실제 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 2193 2014/11/07
15329     Re:델파이에서 보낸 파일을 안드로이드에서 수신 하는 프로그램짜고있습니다. 눈팅이 2385 2014/11/10
15332         Re:Re: 파일 분할하여 송신하는 법을 알고싶습니다. Jinzeros 2017 2014/11/12
15334             Re:Re:Re: 파일 분할하여 송신하는 법을 알고싶습니다. 눈팅이 3365 2014/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.