거참...
소스를 이해하기가 어렵네염...
프로토콜 패킷을 정확하게 표기해주는 게 나을 거 같습니다.
예를 들면..
STX+데이터+ ETX ...
요런 식으로 패킷 구조를 알아야 답을 들으실 수 있을 거 같습니다.
그리거
상대방이 STX와 ETX를 캐릭터로 날린다고 했는데...
STX와 ETX는 아스키 제어값이거던요...
제생각에는
STX값 : Chr($02)
ETX값 : Chr($03)
이렇게 날린다는 뜻 같은데요?
즉
'S'+'T'+'X'+Data..........+'E'+'T'+'X' 이렇게 하셨다는 건가요?
아니면
Chr($02)+Data......+Chr($03) 이렇게 하셨다는 건가요?
원칙적으로
프로토콜을 맹그실라면...아래쪽과 같이 맹그는 것이 정상인데....
엄...
정확한 질문 내용파악이 안되는군여..
분명한바보 wrote:
> 지금 프로그램을 짜고 있는 데여....그것이 제가 프로토콜을 이상하게 잡아나서여
> 하여간 맹글긴 해야 하니 만들고 있지만 혹시 더 좋은 생각 있으신 분은 제가
> 자바놓은 소스에 첨부해 주시길 바랍니다.^^
> 프로토콜을 's''t''x' 데이타 'e''t''x' 이구여...상대방이 캐릭터 형으로 날려준다고 해서 이렇게 맹글었습니다.
>
> 아래 부분은 's''t''x' 부분이구여...
> 's''t''x' 부분은 쉬운데 etx부분은 넘 어렵군여.......
> 그러니깐 데이타가 들어가다 e가 들어오면 e를 물고 있다가 t가 안들어 오면 e를 데이타에 추가 시켜 주어야 할거 같은데......
> 하여간 방법 있으시면 갈켜주세여...흑
> 급해여....
>
>
>
> begin
> if Rp[port_no] >= RXMX then
> begin
> SF[port_no] := #0;
> EF[port_no] := #0;
> TF[port_no] := #0;
> XF[port_no} := #0;
> Rp[port_no] := 0;
> exit;
> end;
> if XF[port_no] = #0 then
> begin
> if TF[port_no] = #0 then
> begin
> if SF[port_no] = #0 then
> begin
> if ch = 'S' then
> begin
> SF[port_no] := ch;
> TF[port_no] := #0;
> XF[port_no] := #0;
> end
> else
> begin
> SF[port_no] := #0;
> TF[port_no] := #0;
> XF[port_no] := #0;
> Rp[port_no] := 0;
> exit;
> end;
> end
> else
> begin
> if ch = 'T' then
> begin
> SF[port_no] := #0;
> TF[port_no] := ch;
> XF[port_no] := #0;
> end;
> else
> begin
> SF[port_no] := #0;
> TF[port_no] := #0;
> XF[port_no] := #0;
> Rp[port_no] := 0;
> exit;
> end;
> end;
> end
> else
> begin
> if ch = 'X' then
> begin
> SF[port_no] := #0;
> TF[port_no] := #0;
> XF[port_no] := ch;
> end
> else
> begin
> SF[port_no] := #0;
> TF[port_no] := #0;
> XF[port_no] := #0;
> Rp[port_no] := 0;
> exit;
> end;
> end
>