Linux下发送网络数据0d0a的问题
因为Window和Linux的回车编码不一样,Windows的回车换行编码是0x0d 0x0a两个字节,而Linux的编码只有一个字节0x0a,所以在Linux发0x0a出去到Windows下接收就会变成0x0d 0x0a,这种自作聪明的转换是很令人讨厌的!当你传输的是二进制数据时,接收到的文件就无法使用了。这个应该是串口的参数设置问题,网上有C写的串口操作程序就可以设置,原因是在串口设置中c_iflag和c_oflag中存在从NL-CR 和CR-NL的映射,也就是说,串口可以把回车和换行看成一个字符,所以,此时我们应该屏蔽掉这些,用options.c_oflag &=~(INLCR|IGNCR|ICRNL)和options.c_oflag &=~(ONLCR|OCRNL)进行设置。