or download this
A common misconception in socket programming is that "\n"
eq "\012" everywhere. When using protocols such as common
Internet protocols, "\012" and "\015" are called for
specifically, and the values of the logical "\n" and "\r"
(carriage return) are not reliable.