|
보통 사내에서는 보안등의 이유로 NAT로 변환되어 사용합니다.
내피시에서 ipconfig 등으로 할당된 ip를 보면 172, 192 같은 사설ip로 보일겁니다.
하지만 인트라넷 밖 외부의 서버로 접속이 되려면 공인ip로 접속이 되어야 합니다.
저 외부로 나가기전에 라우터라는 것이 변환을 해주고 있는 것이구요.
정리하면 인트나넷등의 내부망에 있는 서버는 외부에 있는 친구분이 접속할 수 없습니다.(기술적으로 안되는 것은 아닙니다만 보안담당자가 해줄리가 없습니다.)
친구분이 접속하려면 질문자가 만든 서버가 DMZ(외부망에서 접근할 수 있는 IP)에 있어야 합니다.
여기서 손쉽고 간단한 해결방법은 서버를 외부망에 두고 클라이언트들이 해당 서버에 접속해서 메세지를 보내면 서버에서 메세지를 중개하는 식으로 하면 됩니다....
Mac 님이 쓰신 글 :
: SanFA 님이 쓰신 글 :
: : 안녕하세요? 빌더에 대해 공부하고있는 직장인입니다.
: : TServerSocket, TClientSocket을이용해
: :
: : 서버를 열고 클라이언트가 IP를 입력(포트는 강제지정 입력을 받지 않습니다.) 하여 접속후
: :
: : SendText , ReceivedText 로 메세지를 주고 받을수 있는 만들었따고 하기도 민망한
: :
: : 정말 간단한 프로그램을 만들었습니다.
: :
: : 테스트결과 제컴퓨터 자체는 물론 회사내부에서는 메세지가 잘 전송되고 받아지는데
: :
: : 다른회사에있는 친구에게 exe파일을 주어 테스트한결과
: :
: : 서버에 접속 자체가 안됩니다..
: :
: : 뭐가문제일까요..;;
: :
: : 아니면 제가 개념자체를 잘못 이해하고있는건가요...;;
: :
: : //------------Client 접속부분-----------------//
: : void __fastcall TForm1::ConnectClick(TObject *Sender)
: : {
: : try
: : {
: :
: : ClientSocket1->Active = false;
: : InputQuery("Server를 입력하시던가... ","Server Address:",sServer);
: : ClientSocket1->Host = sServer;
: : ClientSocket1->Port = 8080;
: : ClientSocket1->Active = true;
: : }
: : catch ( ... )
: : {
: : ShowMessage("Server 접속에 실패 했습니다, 서버를 실행해 주세요");
: : }
: : }
: :
: : ctNonBlocking 방식을 사용했습니다.
: :
: : 날씨 쌀쌀해지는데 감기들 조심하시고 좋은답변 기다리겟습니다..
: ===========================
: 회사 내부에서사용하는 ip는 사설 ip지만
: 인터넷으로 접속하여 사용시는 전혀 다른 ip가 됩니다
:
: 예를 들어서 192.168.1.1 :8080 로 설정한 장비가 아마 지구상에 5천만개 정도 일겁니다
:
: 라우터를 거쳐서 실제 사용되는 ip는 mac주소가 지구상에서 오직 하나만 존재하고
: 이것을 찾아서 설정해야 바르게 찾아옵니다
: 그리고 접속전에 방화벽에 상대편ip 포트번호나 접속허용 포트 사용을 허가해야 합니다
:
:
: mac주소를 통해 소켓통신이가능한가요??
: 어떻게해야할까요 알려주시면 감사하겠습니다.
|