Freeling服务器关闭

时间:2015-06-26 12:38:43

标签: sockets nlp

我目前正在尝试使用Freeling设置客户端 - 服务器环境。我可以使用以下启动命令运行服务器: analyzer -f%FREELINGSHARE%\ config \ it.cfg --lang it --server --port 3330 --flush --inpf plain

但是,每当客户端尝试通过套接字执行分析时(从shell和Matlab环境都尝试过),服务器一旦完成处理此类请求就会关闭。这种行为迫使每个客户端请求重新启动服务器。从文档中,似乎应该为每个客户端分配一个新进程,cit。 “服务器将分叉一个新进程来参与每个新客户端,因此您可以同时为多个客户端提供服务。” N.B我正在使用Freeling 3.1版

2 个答案:

答案 0 :(得分:0)

经过一些测试后,我得出以下结论:

1)我遇到了与Freeling服务器和Windows操作系统的组合有关的错误。基本上,analyzer.exe程序不会像每个新客户端请求那样分叉新进程,而是使用当前进程执行分析,一旦客户端断开连接就会导致终止。这可能是由于套接字处理不当造成的,这对于不同的操作系统来说是不同的。

2)前一点似乎是由基于linux的服务器的正确行为所证实的。但是,Freeling for linux与特定的Linux版本有关,这些版本也已经过时了。此约束是由于较新的发行版无法满足的依赖性。

作为结束语,在撰写本文时,最佳解决方案似乎是使用Freeling库的套接字服务器的自定义开发。

答案 1 :(得分:0)

查看代码,这似乎是默认行为。

  // if we are a forked server attending a client, and the client is done, we exit.
if (ServerMode) CloseWorker(stats);

如果您有2个客户打开并提交1请求,它将在完成后关闭连接,但它仍然可以接受来自第二个客户端的请求。您可以只创建一个新客户端,而不是每次都重新启动服务器。您始终可以修改CloseWorker函数以根据特定条件关闭套接字以保持客户端连接处于打开状态。

似乎此应用程序可以接受多个客户端,但它无法接受来自多个客户端的多个请求。