我有一個服務器和一個客戶端程序,通過套接字連接與對方通話。 它發送通過telnet /(或Mac上的終端?)監視的數據字符串。 n r在不同的操作系統上有不同的表現嗎?
它工作正常,當我使用我的MAC作爲服務器和我的PC作爲客戶端。 它做,當我用我的MAC作爲客戶端不工作,PC作爲服務器...(!?)
難道是它的interperets "\n\r"
(EOL?)不同,因爲有兩個不同OS?
有沒有人有關於如何解決這個簡單的線索/提示/解決方法?
我有一個服務器和一個客戶端程序,通過套接字連接與對方通話。 它發送通過telnet /(或Mac上的終端?)監視的數據字符串。 n r在不同的操作系統上有不同的表現嗎?
它工作正常,當我使用我的MAC作爲服務器和我的PC作爲客戶端。 它做,當我用我的MAC作爲客戶端不工作,PC作爲服務器...(!?)
難道是它的interperets "\n\r"
(EOL?)不同,因爲有兩個不同OS?
有沒有人有關於如何解決這個簡單的線索/提示/解決方法?
Windows實際上使用\r\n
作爲EOL。不過,它在不同的操作系統上的表現應該不同。 Mac使用\r
,因此忽略\n
,反之亦然* nix。 Windows忽略\r
和\n
,除非它們以\r\n
的順序彼此相鄰。
使用EOL進行編程時,大多數語言只使用\n
,並在必要時自動轉換格式。
如果我沒有記錯,Mac使用CR(「\ r」)作爲他們的單行尾字符。由於Windows使用「\ r \ n」(CR-LF)作爲行尾,因此您可能需要在代碼中進行補償。
在Windows上,EOL實際上是「\ r \ n」,而不是「\ n \ r」。試着改變它。 –