2012-02-23 2 views
1

tcp 메시지를 끝내는 가장 좋은 방법은 무엇입니까? 이제는 내 자신 만의 맞춤 문자열을 가지고 있지만, 나는 장님 행운의 경우 최종 메시지 chracater (s)/string을 포함 할 수있는 무언가를 전할 수 있다는 편집증에 빠지다.tcp 메시지 끝 모범 사례

SMTP 서버는 Enter 키를 사용하지만 텍스트의 평화가 입력되어 전선으로 전송되는 경우 괴롭히지 않습니다.

나는 이것에 대한 아이디어를 얻고 싶습니다.

감사

답변

2

당신이 최종 지표로 사용자 정의 문자열을 사용하는 경우, 당신은이를 표시등이 일부 문자열 회피 기술을 사용하여, 메시지 본문에 표시되지 않도록해야합니다.

예를 들어, "\ r \ n"을 종료 표시기로 사용하는 경우 메시지 본문의 "\ r \ n"을 다른 양식으로 바꾸어야합니다.

+0

확인 그것을 해결? 그래서 다른면에서 그것을 모두 잡을 때 ... 나는 대체물의 두 가지 현상을 대체함으로써 그것을 엉망으로 만들 수 있습니다. –

+0

나는 그 긴 발사를 알고있다. 그러나 나는 "올바른"방법이 무엇인지 여기에서 이해하려고 노력하고있다 ... 메시지 delimeter 나 탈출 대체물의 결정된 끝이 유일 할 것이라는 것을 희망하는 올바른 해결책이 될 수 없다. 충분히? –

+1

이것은 당신에게 유용 할 수 있습니다. http://stackoverflow.com/questions/667803/what-is-the-best-algorithm-for-arbitrary-delimiter-escape-character-processing – ciphor

2

메시지의 길이를 더 잘 사용하고 처음으로 전달할 수 있습니까?

예를 들어 텍스트 프로토콜의 예는 입니다. 귀하의 문제는 내가 어딘가에 메시지 delimter 내 말을 대체 할 경우 그 문자열 안에서 발견 TIS,하지만 내 대체는 문자열의 어딘가에 일치가 무엇인지 .... 약간의 숙고 후, 일부

An encoded string is a string with the following encoding rules. 
- Characters in the range [0x10 - 0xff] are encoded as itselves. 
- A character in the range [0x00 - 0x0f] is prefixed by 0x01 and 
    shifted by 0x40. For example, 0x03 is encoded as 0x01 0x43.