|
으흠.. 설명 하기 힘들어서 그림판으로 끄적 댔습니다.
잘 안보이시면 다운로드 받으셔서 보시면 잘 보입니다 ^^
아주 간단히 TCP 와 UDP의 차이점을 설명해 놓았습니다.
금목암 님이 쓰신 글 :
: udp에서 일부 놓칠수는 있지만 늘 놓치지는 않으므로 아예 안받는다면
: 그부분 소스를 zip파일로 압축해서 보여주세요
: 일부만 보고는 어디를 잘못짰는지 모르겟네여
:
:
:
: 이성제 님이 쓰신 글 :
: : 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 에서 데이타가 받아지는것 맞죠..
: : : : 죄송하지만 좀 자세한 설명좀 부탁좀드릴께요
|