控制台应用程序适用于 Windows,不适用于 Linux with Mono
Console app works on Windows, doesn't on Linux with Mono
我正在开发一个简单的 TCP 服务器。为了与客户沟通,我使用 StreamWriter
class,像这样:
client.ClientWriter.WriteLine(command);
client.ClientWriter.Flush();
命令是一个单词,后跟行终止符System.Environment.NewLine
。我的客户端(用 Lua 编写)检查这样的命令:
if data:find("INIT") then DoSomething()
elseif data:find("START") then DoSomethingElse()
...
else SendResponse("BAD REQUEST")
我使用 VS2017 开发了原始应用程序。当我 运行 它在 Windows 机器上时,应用程序运行完美。
但是,我需要将我的应用程序部署到 Linux 运行ning Mono。当我在 Linux 上测试该应用程序时,我发送给客户端的每个命令都无法识别并返回 "BAD REQUEST"
。我无法在我的 Windows 机器上重现该问题。
编辑:经过一些测试,我能够运行 Kubuntu 运行ning mono 4.2.1 上的程序;但我仍然不能 运行 在我的另一台机器(我需要部署的机器)上 运行ning mono 4.2.3.
这个问题可能是什么原因造成的?
事实证明,这个问题只是更大问题的征兆。我从任务中执行读取命令。我使用的 Mono(版本 4.1.3)显然有一个错误阻止某些任务启动,所以我明确声明了一个线程。
我正在开发一个简单的 TCP 服务器。为了与客户沟通,我使用 StreamWriter
class,像这样:
client.ClientWriter.WriteLine(command);
client.ClientWriter.Flush();
命令是一个单词,后跟行终止符System.Environment.NewLine
。我的客户端(用 Lua 编写)检查这样的命令:
if data:find("INIT") then DoSomething()
elseif data:find("START") then DoSomethingElse()
...
else SendResponse("BAD REQUEST")
我使用 VS2017 开发了原始应用程序。当我 运行 它在 Windows 机器上时,应用程序运行完美。
但是,我需要将我的应用程序部署到 Linux 运行ning Mono。当我在 Linux 上测试该应用程序时,我发送给客户端的每个命令都无法识别并返回 "BAD REQUEST"
。我无法在我的 Windows 机器上重现该问题。
编辑:经过一些测试,我能够运行 Kubuntu 运行ning mono 4.2.1 上的程序;但我仍然不能 运行 在我的另一台机器(我需要部署的机器)上 运行ning mono 4.2.3.
这个问题可能是什么原因造成的?
事实证明,这个问题只是更大问题的征兆。我从任务中执行读取命令。我使用的 Mono(版本 4.1.3)显然有一个错误阻止某些任务启动,所以我明确声明了一个线程。