我目前正在使用Python的socketServer模块实现套接字服务器。我很难理解客户端如何“发出信号”服务器来执行某些任务。
正如您所知,我是这方面的初学者。我看了很多教程,然而,这些只告诉你如何在服务器中执行单一任务,例如修改来自客户端的消息并将其发回。
理想情况下,我想知道客户端是否有办法与服务器通信以执行不同类型的任务。
这个问题有标准方法吗?
我甚至使用了正确类型的服务器吗?
我正在考虑从客户端实现某种形式的消息传递,告诉服务器它应该执行哪个任务。
答案 0 :(得分:1)
我正在考虑从客户端实现某种形式的消息传递,告诉服务器它应该执行哪个任务。
这正是您所需要的:应用程序协议。
套接字(假设流式Internet套接字或TCP)是一个字节流,仅此而已。为了给这些字节赋予任何意义,你需要一个协议来确定哪个字节(或其序列)意味着什么。
要解决的主要问题是这种套接字提供的流没有“消息”的概念。因此,当一方发送“HELLO”和“BYE”之后,它们将被连接到流中:“HELLOBYE”。甚至更糟糕的是,您的服务器首先收到“HELL”,然后是“OBYE”。
因此,您需要消息框架,或规则如何解释消息的开始和结束位置。
您通常不希望发明自己的应用程序协议。通常利用HTTP或其他现有协议来传递消息。