Socket Send(2) - 如何从服务器向客户端发送错误消息

Posted

技术标签:

【中文标题】Socket Send(2) - 如何从服务器向客户端发送错误消息【英文标题】:Socket Send(2) - How to send an error message from server to client 【发布时间】:2017-04-06 21:49:27 【问题描述】:

我现在正在做一些非常简单的 TCP 套接字编程,但我遇到了一个小问题,我似乎找不到答案。基本上,我正在构建的是一个服务器程序和一个客户端程序,它们允许客户端从服务器请求文件,服务器将发送它。

我的问题是,如果客户端请求服务器没有的文件,我需要将错误消息发送回客户端。我可以设置一个标志来执行此操作吗?我不能只发送包含错误消息的字符串,因为该消息可能会在某个时间点出现在文件传输中并触发不正确的响应。

我浏览了 MAN 页面和其他一些资源,但似乎无法弄清楚。我在 Linux 环境中工作。

谢谢!

【问题讨论】:

由您来设计消息传递协议。例如,您可以决定始终在消息/数据之前发送状态。 就像让服务器发送OK 回复后跟文件数据,或者ERROR 回复带有错误消息。然后客户端就可以根据收到的回复来行动了。 哇,这很明显......谢谢大家。不知道为什么我自己没有想到这一点。 或者只是实现HTTP。 :) 【参考方案1】:

有关解决方案,请参阅我在 kaylum 和 Remy Lebeau 的原始帖子中的 cmets。

【讨论】:

以上是关于Socket Send(2) - 如何从服务器向客户端发送错误消息的主要内容,如果未能解决你的问题,请参考以下文章

如何测试调用socket.send时是不是引发异常[重复]

C Socket Send() 直到程序终止才发送

socket通信中send()和recv()的行为

Socket.Send,服务器收到很多无效的 MPacket

Socket send函数和recv函数详解

netperf:send_omni:connect_data_socket failes:No route to host