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

C++빌더 Q&A
C++Builder Programming Q&A
[74524] Re:Re:Re:Re:Indy server 관련하여 질문있습니다..
탕구리 [byoungsun12] 3964 읽음    2017-08-04 11:57
아.. 그 에러는 말씀해주신대로 배열을 잘못사용해서 발생하는 거였네요..

서버에서 write가 안됐던 문제는 제가 배열을 잘못해서 맨 처음 배열에 0이 들어있었고 이 값만 보내어져 안써지는 줄 착각했었네요..

변수를 TIdbytes로 선언하고 값을 보내니 원하는 배열 모두 write되는 것 같습니다.

read할때 데이터를 TIdBytes변수로 받고 수행했던걸 자세히 파악했으면 금방 해결됐었을거같은데... 한참을 헤맸네요

답변 친절하게 해주셔서 감사합니다!!!! :)

정성훈.해미 님이 쓰신 글 :
: 메모리 익셉션 에러는 대부분 배열을 잘못 사용했을때 발생합니다.
: 혹시
: unsigned char req[12];
: unsigned char res[10];
:
: 이 두개의 배열의 크기가 작진 않은지 확인해보세요.
:
:
:
:
: 탕구리 님이 쓰신 글 :
: : 답변 감사드립니다.
: :
: : 조언해주신대로....
: : 윈도우 방화역 아웃바운드에 해당 프로그램을 등록했는데도... 여전히 값은 들어오는데 나가지를 않네요 그리고 추가적으로 아래 작성한 코드 중 AContext->Connection->IOHandler->Write(*res); 를 가리키며 다음과 같은 debugger exception notification 창이 뜹니다.
: :
: : Project project1.exe raised exception class $C0000005 with message 'access violation at 0x004037f3:read of address 0x000000a4.
: :
: :
: :
: : 정성훈.해미 님이 쓰신 글 :
: : : 윈도우 방화벽 때문에 그럴 가능성이 큽니다.
: : :
: : : 데이터를 받는 것(인바운드) 같은 경우는
: : : 프로그램 실행시 네트워크 허용한다고 하면 바로 되는데
: : :
: : : 데이터를 보내는 것(아웃바운드)의 경우
: : : 윈도우 방화벽 설정에 잇는 아웃바운드에 해당 프로그램을 등록해주셔야
: : : 데이터가 외부로 나갈겁니다.
: : :
: : :
: : : 탕구리 님이 쓰신 글 :
: : : : 안녕하세요
: : : :
: : : : 현재 arm core를 client로, pc를 server로 동작하려고 합니다...
: : : :
: : : : C++builder에 indy tcp server가 있어서 이를 사용하려고 합니다.
: : : :
: : : : indy tcp에 대한 자세한 설명이나 sample code를 찾지 못해 google로 검색해가면서 구현을 하고 있는데요.. socket open, listen과 같은게 아니라 indy tcp는 execute 함수에서 수행을 하는것 같더라구요,,
: : : :
: : : : 검색검색 하면서 arm core에서 값을 보내면 이를 받는 것 까지는 확인을 했습니다.
: : : :
: : : : 근데 server에서 armcore(client)로 값이 써지지를 않는거 같습니다... 제가 어떤걸 간과했는지 알려주실 분 계신가요 ㅠㅠ
: : : :
: : : : 아래는 제가 작성한 코드입니다.
: : : :
: : : :
: : : : void __fastcall TForm1::IdTCPServer1Execute(TIdContext *AContext)
: : : : {
: : : :       TIdBytes SocketReceiveArray;
: : : :       unsigned char req[12];
: : : :       unsigned char res[10];
: : : :       int size;
: : : :       int i=0;
: : : :     try
: : : :     {
: : : :         size =  AContext->Connection->IOHandler->InputBuffer->Size;
: : : :         if(size >= 1)
: : : :         {
: : : :                memset(req,0x00,size);
: : : :                AContext->Connection->IOHandler->ReadBytes(SocketReceiveArray, size, false);
: : : :                BytesToRaw(SocketReceiveArray, req, size);
: : : :                for(i=0;i<=size;i++)
: : : :                {
: : : :                     mmComList->Lines->Add(req[i]);
: : : :                     res[i] = i;
: : : :                }
: : : :         }
: : : :         AContext->Connection->IOHandler->Write(*res);
: : : :     }
: : : :     __finally
: : : :     {
: : : :        //    AContext->Connection->Disconnect();
: : : :     }
: : : :
: : : : }

+ -

관련 글 리스트
74516 Indy server 관련하여 질문있습니다.. 탕구리 3900 2017/08/03
74517     Re:Indy server 관련하여 질문있습니다.. 정성훈.해미 3828 2017/08/03
74518         Re:Re:Indy server 관련하여 질문있습니다.. 탕구리 3658 2017/08/03
74521             Re:Re:Re:Indy server 관련하여 질문있습니다.. 정성훈.해미 3640 2017/08/03
74524                 Re:Re:Re:Re:Indy server 관련하여 질문있습니다.. 탕구리 3964 2017/08/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.