首页 文章

服务器可以使用TCP向客户端发送消息吗?

提问于
浏览
0

我之前只做了HTML / HTTP,并在我们的网站上做了一些网页套件,现在我被分配了一个任务,即客户端和服务器,客户端将连接到服务器的IP,服务器将向客户端发送一些命令 .

我原本以为使用HTTP和websocket来完成这项任务,但有人告诉我应该使用TCP而不是HTTP / websocket .

由于我不知道TCP,你能否告诉我TCP只能完成这项任务?

1 回答

  • 0

    如果您有自定义客户端(例如,不是浏览器中的Web应用程序),则可以根据需要与服务器 Build 纯TCP连接 . 但是,TCP上的每次传输都需要双方正在使用的某种数据格式(通常称为“协议”),因此通常更容易使用现有协议而不是重新创建自己的协议 . 像HTTP,webSocket,FTP等......是定义要执行的操作和数据格式的协议 .

    因此,通常您会发现一个协议可以很好地匹配您正在尝试执行的操作,并获得现有库以在客户端和服务器上实现该协议 . 这通常会为您节省大量编写和解析通过连接发送的数据的工作 .

    选择哪种协议完全取决于您尝试使用未共享的连接完成的任务,因此我们无法提出任何具体建议 .

    我原本以为使用HTTP和websocket来完成这项任务,但有人告诉我应该使用TCP而不是HTTP / websocket .

    你问过他们为什么告诉你了吗? HTTP非常通用且易于使用,但它是一个请求/响应协议(客户端A发送请求,服务器B提供响应,然后连接完成) . 这适用于某些类型的东西,对其他类型的东西不太好 .

    webSocket实际上是通过HTTP启动的,然后将协议切换到webSocket数据帧格式,并被设计为持久连接,可以长期存在并且可以在两个方向上发送数据 . 例如,客户端可以通过webSocket连接到服务器,然后服务器可以在它们到达服务器时每隔几秒发送一次股票报价更新 . 客户只会坐下来听取更新到达 .

    由于我不知道TCP,你能否告诉我TCP是否只能完成这项任务?

    TCP当然有能力 . TCP是一个较低级别的传输层,许多其他东西(如HTTP)都是 Build 在它之上的 . 您可以通过TCP完成任何类型的网络连接,但由于它的级别较低,您必须自己设计很多通信机制 . 您通常首先会查找与您的连接需求相匹配的现有协议(在TCP之上运行)并使用其他人已经完成的工作,而不是从头开始构建您自己的协议 .

相关问题