0

大家好,我正在制作一个客户端-服务器软件,这是我想问的第一个问题:如何区分 tcp Connection 发送的数据?

好吧,我的观点是:-我们可以确定 tcpconnection 发送的数据。例如,我们的表单中有 3 个列表视图,第一个列表视图的点用于客户的生物数据。第二个listview的点是for *从客户端获取的值 n 第三个listview的点是for从客户端获取的图片

在这种情况下,我们有 3 个必须处理的要点。事实上,我们的系统中只有 1 个连接。

好吧,我很困惑..如何确定我们收到的数据是针对第一个列表视图还是第二个列表视图或第三个列表视图?记住,第三个listview的数据是我们从tcpconnection收到的一张图片

我们如何在系统中使用 1 个连接来做到这一点?我是否必须建立 3 个连接才能控制第三个列表视图?

4

1 回答 1

0

使用套接字通信,客户端和服务器必须使用相同的约定协议,以便它们能够相互理解。已经创建了许多标准协议,因此对于大多数任务,创建自己的协议是不必要的。但是,如果必须,您始终可以定义自己的协议。您的协议的性质显然完全取决于您的特定需求,因此不可能告诉您协议应该是什么。但是,一般来说,您的协议必须定义的第一件事是如何知道每条完整消息的开始和结束位置。这通常通过用分隔符分隔每条消息来完成(例如,换行符、EOF、null)。正如弗朗索瓦建议的那样,您也可以在每条消息的开头指定消息的长度。在每条消息中,

一个简单的实现可能是将每条消息作为 JSON 或 XML 文档发送。这样做可以很容易地定义和修改消息的格式。

但是,除非您确实需要,否则我建议使用 .NET 提供的内置通信框架之一。对于简单的任务,通常一个简单的 asmx Web 服务就足够了。对于更复杂的任务,WCF 通常是一个不错的选择。asmx Web 服务通过 TCP/IP 通过 HTTP 使用 SOAP。WCF 使用 SOAP,但较低级别的连接是可配置的,因此它不必使用 TCP/IP,但它可以很容易地做到这一点。

于 2012-12-07T16:58:14.913 回答