or download this
In the input stream, each sequence of carriage return and line feed (i
+.e. "\015\012" or CR LF) is converted to "\n". In the output stream,
+each occurrence of "\n" is converted to a sequence of CR LF. See binm
+ode() to change the behavior. TCP protocols typically use the ASCII s
+equence, carriage return and line feed to designate a newline.