|
현지 아빠 입니다.
posix.duo 님이 쓰신 글 때문에 큰 혼란을 격을까봐서리~ 지나가다가 몇다디 적습니다.
네트웤 통신이란 대체적으로 posix.duo 님이 쓰신 글처럼 무리적인 하드웨어 레벨을 의미하지만
127.0.0.1 이란 가상의 자기 아이피를 통해서~ loop 통신이 가능 합니다.
주소를 127.0.0.1 로 지정 해서 다시 한번 해보시길...
그럼
posix.duo 님이 쓰신 글 :
: TCP/IP나 UDP 같은 경우 물리적인 포트를 통하여 통신을 하도록 설계된 것입니다.
: 따라서 한 PC내의 프로세스간 통신은 안되는 것으로 알고 있습니다.
: (물리적인 포트가 2개인 경우라면, 두개의 어드레스를 가지고 물리적으로 케이블을 꼽아주면 되겠지만)
:
: 프로세스간의 통신을 하시려면 두가지 방법이 있습니다.
: 첫번째는 유저정의 메시지를 통하여 메시지를 주고받는 방법이 있고
: 두번째는 메모리 맵 파일을 이용하여 데이터를 공유하는 방법이 있습니다.
:
: 보통 실질적인 데이터를 주고받을 때는 메시지 보다는 메모리 맵을 많이 이용합니다.
: (주고 받는다는 개념보다는 메모리를 공유한다는 개념이지만)
:
: 메모리 맵 파일은 실제 메모리에 존재하는 것이 아니고 하드디스크에 존재하기 때문에
: 극히 짧은 시간에 많은 데이터를 빈번하게 주고 받아야 한다면 원활하지 않을 수도 있습니다.
:
: 메모리 맵은 생성하는 것만 다를뿐 사용은 일반 파일과 같습니다.
:
: 이운국 님이 쓰신 글 :
: : ..
: : void __fastcall TBaseForm::FormCreate(TObject *Sender)
: : {
: : // UdpSocket1->LocalHost = UdpSocket1->LocalHostAddr();
: : UdpSocket1->LocalHost = UdpSocket1->LocalHostName();
: : UdpSocket1->RemoteHost = UdpSocket1->LocalHost;
: : UdpSocket1->RemotePort = 9999; // 1; 다른프로그램 설정
: : UdpSocket1->LocalPort = 1; // 9999;
: : UdpSocket1->Open();
: : }
: : void __fastcall TBaseForm::UdpSocket1Receive(TObject *Sender, PChar Buf, int &DataLen)
: : {
: : StatusPanel->Caption = "Receive";
: : memcpy( Packet, Buf, DataLen );
: : if( ScanForm->Visible ) ScanForm->ViewScanBuffer( Packet, DataLen, false );
: : }
: : void __fastcall TBaseForm::SendButtonClick(TObject *Sender)
: : {
: : char *tt = "Test";
: : memcpy( Packet, tt, 5 );
: :
: : if( ScanForm->Visible ) ScanForm->ViewScanBuffer( Packet, 5, true );
: : UdpSocket1->SendBuf( Packet, 5, 5 );
: : }
: :
: : 위와같이 작성했는데
: : 아무런 응답이 없네요...
: : 고수님들의 도움이 필요해요...
: :
: :
: :
|