我有一个服务器和一个客户端程序,它们通过套接字连接相互通信。它发送我通过 telnet /(或终端?在 mac 上)监控的数据字符串。
当我使用我的 MAC 作为服务器并将我的 PC 作为客户端时,它工作正常。当我将 MAC 用作客户端并将 PC 用作服务器时,它不起作用......(!?)
可能是 "\n\r"
因为有两个不同的操作系统,它的解释器(EOL?)不同吗?
有没有人有关于如何轻松解决这个问题的线索/提示/解决方法?
我有一个服务器和一个客户端程序,它们通过套接字连接相互通信。它发送我通过 telnet /(或终端?在 mac 上)监控的数据字符串。
当我使用我的 MAC 作为服务器并将我的 PC 作为客户端时,它工作正常。当我将 MAC 用作客户端并将 PC 用作服务器时,它不起作用......(!?)
可能是 "\n\r"
因为有两个不同的操作系统,它的解释器(EOL?)不同吗?
有没有人有关于如何轻松解决这个问题的线索/提示/解决方法?
Windows 实际上\r\n
用作 EOL。不过,它不应该在不同的操作系统上表现不同。Mac 使用\r
,因此它忽略\n
,反之亦然 *nix。Windows 忽略两者\r
,\n
除非它们在 order 中彼此相邻\r\n
。
使用 EOL 进行编程时,大多数语言仅\n
在必要时使用并自动转换格式。
如果我没记错的话,Mac 使用 CR ("\r") 作为它们的单个行尾字符。由于 Windows 使用 "\r\n" (CR-LF) 作为行尾,您可能需要在代码中对此进行补偿。