控制台应用程序适用于Windows,不适用于具有Mono

时间:2017-09-27 07:54:36

标签: c# linux mono

我正在开发一个简单的TCP服务器。为了与客户沟通,我使用StreamWriter类,如下所示:

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机器上运行它时,该应用程序运行正常。

但是,我需要将我的应用程序部署到运行Mono的Linux。当我在Linux上测试应用程序时,我发送给客户端的每个命令都无法识别,并且返回了"BAD REQUEST"。我无法在Windows机器上重现该问题。

编辑:经过一些测试,我可以在运行mono 4.2.1的Kubuntu上运行该程序;但我仍然无法在我的另一台机器上运行它(我需要部署的机器)运行mono 4.2.3。

造成这个问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

事实证明,这个问题只是一个更大的问题的症状。我从任务执行读取命令。我使用的Mono(版本4.1.3)显然有一个阻止某些任务启动的错误,所以我明确地声明了一个Thread。