一个非常简单的基于节俭的服务器:
public void RunServer()
{
while (_running)
{
try
{
AutomationMain.Processor processor = new AutomationMain.Processor(this);
TServerTransport serverTransport = new TServerSocket(_rxport);
// _server = new TSimpleServer(processor, serverTransport);
_server = new TSimpleServer(processor, serverTransport, new TFramedTransport.Factory(), new TBinaryProtocol.Factory());
Log.Debug("Starting HMI server on port " + _rxport);
_server.Serve();
}
catch (Exception ee)
{
Log.Error("Exception in server: ", ee);
}
}
Log.Debug("HMI server stopped");
}
这在我的开发机器上工作正常,对_server.Serve()的调用阻塞等待连接,客户端可以连接并完成它的工作。
但是安装在远程站点上的另一台PC上,调用不会阻塞,它会立即返回并且日志文件已满#34;在端口上启动HMI服务器"消息。
为什么Serve()不阻止和等待的任何想法?
答案 0 :(得分:0)
确实有其他东西有端口!
在我的C#/ .NET程序中添加了一个控制台,所以我可以看到来自thrift的调试,它揭示了这个问题。