2012-11-11 2 views
0

첫 번째 할당을 위해 우리는 TCP를 사용하여 기본 FTP 프로그램을 만들었으므로 UDP를 사용하도록 수정하고 라우터 프로그램 패킷을 임의로 삭제하고 지연시키고 간단한 중지 및 대기 프로토콜을 사용하여 처리 할 수있는 코드를 만들 수 있습니다. 하지만 그건 문제가 아닙니다.서버가 UDP 패킷을 수신하지 못하여 무엇이 잘못되었는지 알아 내려고 노력했습니다.

실험실 교사 (http://www.cs.concordia.ca/~ste_mors/comp445/Assign2tutorial.ppt)의 메모를 사용하여 UDP를 사용하도록 클라이언트와 서버를 수정했으며 현재 내가하고있는 일은 모두 보내는 것입니다. 패킷을 보내고 다른 쪽 끝에서 텍스트 줄을 인쇄합니다. 슬라이드의 지시 사항을 따라 localhost (테스트 할 다른 컴퓨터가없는)에서 실행하고 라우터가 패킷을 수신하고 전달하지만 라우터가 텍스트 줄을 인쇄하지 않는다고 확인합니다. UDP가 패킷을 많이 잃는다는 것을 알았습니다. 나는 패킷을 영원히 보내는 while (true) 루프를 만들었습니다. 서버는 여전히 아무것도하지 않습니다. 클라이언트 : http://pastebin.com/XdbxuJ9R은 서버 : http://pastebin.com/iN5j2Ku3 변경 불가능한 라우터는 우리에게 주어진 : 송신 라인이 연결이 이전부터 시작 후에 내가 모든 일에 왼쪽 클라이언트에 대한 http://pastebin.com/QwMAc0MW

입니다 여기에

지금까지 코드의 175, 서버에서 나는 181에 수신 부분을 제외하고 실행 루프의 모든 것을 주석으로 처리했다.

나는 이것을 고치려고 절대적으로 미쳐 가고있다. 나는이 한 가지 일을 할 수 없기 때문에 계획을 취소하고 하루 종일 망쳐야했습니다. . :(

난 당신이 잘못된 포트를 사용하고 무엇을 말할 수에서
+2

하나 그리 분명 문제가 당신의 PC : – paulsm4

+0

는 Windows 방화벽에서 방화벽이 될 수 :

합니다 (0x 접두사를 제거하는 등) mbers 아마이 라우터가 작동하는 방법을 보여 도움이 될 것입니다 Windows 7에서는 팝업이 올 때 허용했습니다. 라우터와 서버에 대해서만 나타났습니다. – Portaljacker

+0

그냥 내 컴퓨터를 끄면 너무 조심할 수 없습니다. P) 같은 문제입니다. 하나의 이상한 일은 라우터 출력이 그것을 통과 한 다음 서버가 뭔가를 보낸다는 의미의 메시지를 보여 주지만 서버에서만 수신합니다. 어떤 종류의 전송도 없습니다. – Portaljacker

답변

4

여기가 router.h가 정의하는 작업은 다음과 같습니다 여기

// router.h 
#define ROUTER_PORT1 7000 //router port number 1 
#define ROUTER_PORT2 7001 //router port number 2 
#define PEER_PORT1 5000 //port number of peer host 1 
#define PEER_PORT2 5001 //port number of peer host 2 

그리고 당신이 정의하고있는 작업은 다음과 같습니다

// client.cpp 
#define REQUEST_PORT 0x5000 // hexadecimal, that's port 20480 

// server.cpp 
#define REQUEST_PORT 0x5001 // hexadecimal, that's port 20481 

코드의 나머지는 확인하지 않았지만 포트 nu를 수정 한 후 서버가 수신 한 것으로 보입니다. ,

// the router does (pseudocode): 
recvfrom(7000), sendto(PEER2:5001) 
recvfrom(7001), sendto(PEER1:5000) 
+0

오, 안돼 ... 어떻게 알았지? > _ <0x 접두어를 제거하지 않고도 값을 변경했습니다! 정말 고맙습니다! 운 좋게 1 주일 연장을 할 수 있었고 코드가 실행되지 않는 이유를 밝히지 않았습니다. : P – Portaljacker

+0

server.cpp 및 client.cpp는 #include router.h를 사용해야합니다. :) – rbp

관련 문제