|
안녕하세요?
음 저도 초보라 뭐라 답을 드리기는 좀 그렇네요...
님께서 말씀하신 에러 메세지는 정상적인 종료가 이루어 지지 않았을때 나타나는
메세지로 기역이 납니다.
며칠전에 저도 이런 문제가 나서 해결을 했습니다.....
아래 어떤 분의 답에 의하면 trace 를 이용해서 하나하나 체크 해서 찾아야
한다는 군요...
하지만 저는 코딩상에 그위치를 파악하여
수정을 했습니다.
님도 종료 하는 부분을 점검해 보시기 바랍니다.
빵샹시 님이 쓰신 글 :
: 안녕하세요!!
: 패킷을 구성해서 indy udp로 주고 받으려고 하는데요..
:
: 서버 쪽에서는 그냥 잘 보냈다고 아무 문제없다고 하는데..
: 클라이언트쪽에서 Abnormal program termination 라는 에러가 뜨면서 프로그램이 그냥 종료되거덩여..
:
:
:
: //메시지를 보내라..
: void __fastcall TForm1::btnSendClick(TObject *Sender)
: {
:
: if(editServerIP->Text == ""){
: ShowMessage("접속할 서버 IP주소를 입력하세요.");
: return;
: }
:
: if(memoSend->Lines->Text == ""){
: ShowMessage("보낼 메세지를 입력하세요.");
: return;
: }
:
: try {
:
: //보낼 패킷을 구성..
: UDP udpPacket;
:
: //컴터 이름을 구하기 위해..
: char ComputerNameBuff[MAX_COMPUTERNAME_LENGTH+1];
: unsigned long ComputerNameLength = MAX_COMPUTERNAME_LENGTH+1;
: GetComputerName( ComputerNameBuff, &ComputerNameLength );
:
: udpPacket.Name = ComputerNameBuff;
: udpPacket.MSG = memoSend->Text.c_str();
:
: // 데이터를 보내라..
: udpClient->Host = editServerIP->Text;
: udpClient->SendBuffer(&udpPacket, sizeof(UDP));
:
: Application->ProcessMessages();
:
: ShowMessage("잘 보냈다!!");
:
: } catch(...) {
: ShowMessage("에러다!!");
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::udpServerUDPRead(TObject *Sender, TStream *AData,
: TIdSocketHandle *ABinding)
: {
: String Name, MSG;
: UDP_RE udpRePacket;
:
: //데이터가 없으면 버려라..
: if(AData->Size < 0) return;
:
: AData->Read(&udpRePacket, AData->Size);
: Name = udpRePacket.Name;
: MSG = udpRePacket.MSG;
:
: // 받은 내용 표시
: memoReceive->Lines->Add(Name);
: memoReceive->Lines->Add(MSG);
:
: Application->ProcessMessages();
: }
: //---------------------------------------------------------------------------
:
:
: 그리고 패킷을 구성하는 내부는 UDP랑 UDP_RE랑 둘다 이렇게 했거든여..
:
: class UDP
: {
: public:
:
: String Name ;
: String MSG ;
:
:
: __fastcall UDP()
: {
: Name = "" ;
: MSG = "" ;
: }
: };
:
: 게시판에서 예제 찾아서 그냥 String값 주고 받는건 잘 했는데요~
: 이렇게 하니까 에러가 나네요...왜그럴까요...ㅠ.ㅠ 알려주세요!!
|