|
UDP 이기 때문에 그렇습니다.
TCP와 UDP의 대표적인 차이점이죠.
TCP는 방화벽이나 보안프로그램이 있어도 접속만 가능 하다면
매세지를 전송 하는데 문제가 되지 않죠.
하지만 UDP는 그냥 전송을 하기 때문에
전송 되는 중에 방화벽 이나 여러 장애 때문에 신호가 사라지거나 변환이 되는거죠.
TCP와 UDP의 대표적인 차이 입니다. 미세한 차이점도 있긴 하지만 생략 하도록 하죠.
자세한건 직접 공부 하시는게 좋을듯 합니다.
금목암 님이 쓰신 글 :
: 서버쪽 포트가 어떻게 설정되어있나요?
: 인디에선 udp서버 /클라이언트를 쌍으로 양쪽에 놓고 주고 받을텐데요
: ===============================================================
:
:
: 현재 님이 쓰신 글 :
: : Udp 소켓을 통해서 통신을 하는데요
: : 이상하게 TUdpSocket 을 사용하게 되면
: : UdpSocket1Receive 이벤트에서 서버측에서 보낸값을 받아야 되는데
: : 받아지지않네요
: :
: : 클라이언트 측은
: : 보낼때
: : UdpSocket1->RemoteHost="서버측 아이피";
: : UdpSocket1->RemotePort=9000;
: : UdpSocket1->LocalHost = UdpSocket1->LocalHostName();
: : UdpSocket1->LocalPort=1532;
: : UdpSocket1->Open();
: : UdpSocket1->Sendln("zzz");
: :
: : 서버측 코드는
: : -.......
: : cliLen = sizeof(cliAddr);
: : n = recvfrom(sd, msg, MAX_MSG, 0,(struct sockaddr *) &cliAddr, &cliLen);
: : sendto(sd,"yes",3, 0, (struct sockaddr *)&cliAddr, cliLen);
: :
: :
: : if(n<0) {
: : printf("%s: cannot receive data \n",argv[0]);
: : continue;
: : }
: : ....
: :
: : 클라이언트에서 "zzz" 를 보내게 되면 서버측에서는 "zzz" 를 받아서 출력은 되는데요
: : 다시 클라이언트로 "yes" 란 문자를 보내게 되는데요 클라이언트측의 UdpSocket1Receive 이벤트에서
: : 받아야 되는데 받지를 못하던데요..
: : 제가 잘못하고 있는것 같은데요
: :
: : TUdpSocket 을 사용하면 데이타를 받을때
: : UdpSocket1Receive 에서 데이타가 받아지는것 맞죠..
: : 죄송하지만 좀 자세한 설명좀 부탁좀드릴께요
|