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
[15374] Re:조대현님 답변 감사합니다.
첫눈 [] 1760 읽음    2015-01-03 20:58
님에게 정말 많은 도움 받고 있습니다.
말씀대로라면 레코드와 구조체를 사용하지 않고
숫자는 문자열로 변환하고 일정 규격에 맞추어 규격화된 문자열로 전송하면 될것 같은데요.
레코드별 길이도 일정할테니 자바쪽에서 길이에 맞추어 문자열을
레코드 단위로 자르고
그걸 다시 길이에 맞추어 칼람별로 맞추면 해결 되겠네요.
항상 많은 도움에 깊은 감사 드립니다.


조대현.Clau 님이 쓰신 글 :
: 1. 구조체 한개는
: TStream을 이용하면 아주 쉽습니다.
: 스트림에 쓰고 소켓으로 전달하면 됩니다.
: 바이트형식이라고 말씀하시는 형식으로 전달됩니다.
:
: <예제>
: var
:   strm : TMemoryStream;
: begin
:   strm.Write(myrecTemp, Sizeof(TMyREC) );
:   idtcpclient1.IOHandler.Write(strm); // 설명용 코드로 실제 구현되지 않습니다.
: end;
:
: 만약 Array of TMyREC 처럼
: 구조체 배열인경우는 for문 돌리면서 각 배열의 구조체를 보내시면 됩니다.
:
: -------------------------------------------
:
: 2. 자바쪽이 아주 큰 문제입니다.
: C나 델파이등은 구조체 그대로 소켓에서 받으면 끝나는데
: 자바에는 구조체가 없으므로 직접 수신받은 내용을 쪼게서 변수에 직접 대입해야 합니다.
:
: 주의해야 할점이 또 있습니다.
: 1) 델파이와 자바의 int, float등의 사이즈는 다를 수 있다.
: 2) 자바쪽 CPU의 종류에 따라 리틀엔디안-빅엔디안 차이로 각 바이트를 읽는 순서를 맞추어야 합니다.
: 3) 스트링의 경우 인코딩 처리가 필요합니다.
:
: -------------------------------------------
:
: 3. 그래서 속도가 민감하지 않다면 그냥 ASCII(문자열)로 던지고 자바쪽에서 직접 컨버팅하는게 가장 쉽습니다.
:
: <델파이>
: idtcpclient1.iohandler.writeln(Col1);
: idtcpclient1.iohandler.writeln(Col1);
: idtcpclient1.iohandler.writeln(IntToStr(Col3));
:
: <자바> // 설명용 코드로 작동하지 않습니다.
: scol1 = sock.readstring("\r\n");
: scol2 = sock.readstring("\r\n");
: scol3 = sock.readstring("\r\n").toInteger();
:
: 첫눈 님이 쓰신 글 :
: : 질문을 너무 자주 하는 듯 하여 죄송합니다.
: :
: : type
: :    TMyREC = Record
: :      Col1 : string[20];
: :      Col2  : string[20];
: :      Col3  : Integer;  
: : end;
: :
: :  var
: :    MyREC : Array of TMyREC;
: :  begin
: : ....
: : ....
: : End;
: :
: : 이런 형식의 Array of Record를 idTCP로 전송하여 JAVA에서 수신하여
: :
: : Col1    Col2    Col3
: : -----------------
: : aaa    bbb     1000
: : ccc    ddd     2000
: : eee    ffff        3000
: : -----------------
: :
: : 이렇게 보여주려 하는데요.
: :
: : 1.
: : Array of Reocrd를 어떻게 Byte형식으로 바꾸어야 할지
: :
: : 2.
: : Byte형식의 데이터를 JAVA에서 어떻게 레코드 배열 형식으로 바꾸어야 할지 모릅니다.
: :
: : 도움 부탁드립니다.
: :
: :

+ -

관련 글 리스트
15369 Array Of Record를 idTCP로 전송하려 합니다. 첫눈 1877 2015/01/01
15373     Re:Array Of Record를 idTCP로 전송하려 합니다. 조대현.Clau 2070 2015/01/03
15374         Re:조대현님 답변 감사합니다. 첫눈 1760 2015/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.