2012-05-06 2 views
0

나는 Net_NNTP->post() 함수를 사용하고 있습니다. 그러면 NNTP 서버에 메시지가 게시됩니다. 때로는 (경우의 30-50 %) 메시지의 모든 줄의 마지막 1 자 또는 2 자 수가 잘립니다. 때때로 이것은 잘 작동합니다.무작위로 작동하지 않는 무언가를 디버깅하는 방법은 무엇입니까?

정말이 방법을 찾을 수 없습니다. 그것은 메시지 등에 삽입 된 텍스트가 아니라 서버로드 등에 관한 것이 아닙니다. 나는 그것을 이해하지 못합니다.

어떻게 디버깅해야합니까?


다음은 PHP 클래스와 동일한 코드 예제입니다.

$sh = fsockopen('nntp-server', 119); 
fwrite($sh, "POST\r\n"); 
fwrite($sh, $article); 
fwrite($sh, "\r\n.\r\n"); 

$article은 항상 같습니다. 서버가 신뢰할 수있는 ISP의 서버가 될 수 있다는 것을 알고 있다면 문제가 될 것이라고 생각하지 않습니다.

이것은 실제로 나에게 의미가 없습니다.

+0

몇 가지 코드를 게시 할 수 있습니까? – Nadh

+0

게시했습니다. 고마워요. – cedivad

+0

코드는 항상 동일한 컴퓨터에서 실행됩니까? 아니면 여러 컴퓨터에서 실행됩니까? 동일한 서버에 –

답변

2

그러나 (사례 30-50 %의)가 메시지의 모든 라인의 1 개 또는 2 문자는 전체 라인 마지막 라인이 누락 한 경우

립니다 지속, 하나는 비 말할 수 의도적 인 소프트웨어 오류. 그러나 모든 행에서 몇 바이트를 잃어 버렸다면, 이는 대부분의 소프트웨어에 의한 의도적 인 동작입니다. 강제 단어 감싸기 또는 줄의 문자가 갑자기 잘못 인코딩 된 경우 (예 : utf) 어쩌면이 NNTP 서버가 설정 한 시간당 바이트가 있습니다.

어느 쪽이든 나는 그것이 통과 할 때와 실패 할 때 요청 패킷이 정확히 같지는 않은지 의심 스럽습니다.

0

입력에 따라 (즉, 일부 입력이 항상 실패하는 경우) 해당 입력을 제공하는 테스트 스크립트를 만들고 xdebug 등을 사용하여 코드를 단계별로 진행하면서 변수를 검사하십시오.