2012-02-23 68 views
1

结束tcp消息的最佳做法是什么?我现在有我自己的自定义字符串,但我是偏执的,在一个不幸的情况下,它可能传输一些东西,可以包含您的结束消息chracater(s)/字符串。tcp消息结束最佳实践

SMTP服务器采用回车键,但是如果文本的安宁“进入”并且在电线上传输,那么它们会不会令人失望?

我想对此有所了解。

感谢

回答

2

如果您使用的是自定义字符串作为最终的指标,必须确保为此指示将不会出现在邮件正文中,使用一些字符串逃生技巧。

例如,如果您使用“\ r \ n”作为结束指示符,则必须将消息正文中的“\ r \ n”转换为另一种形式。

+0

OK,有的沉思后....如果我代替我的消息delimter结束的地方,那朵发现里面的字符串,但后来我的替代也可能被某个字符串中是否匹配?所以,当把它全部放在另一边......我可能通过替换两次我的替换出现而把它弄糟,那里基本上只有一个? – 2012-02-23 13:06:50

+0

我知道它的一个很好的解决方案......但我需要了解什么是“正确”的方式......它不可能是正确的解决方案,只希望你的确定的消息分界符或逃避替代符是唯一的足够? – 2012-02-23 13:08:02

+1

这可能对你有用。 http://stackoverflow.com/questions/667803/what-is-the-best-algorithm-for-arbitrary-delimiter-escape-character-processing – ciphor 2012-02-23 13:39:31

2

可以更好地使用消息的长度并将它传递给开头吗?

例如文本协议seee here。你的问题解决了一部分

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.