使用tcp / ip在C#中从客户端向服务器发送命令

时间:2011-04-20 07:54:55

标签: c# networking tcp

我发现的所有示例都只通过网络发送文本/字符串数据。我弄清楚如何发送不同类型的对象(ArrayLists等)。   我现在正试图找出如何处理从服务器上的客户端发送的命令。   从客户端我必须:   在数据库中添加ä“学生”   删除数据库中的学生   让所有学生都进入数据库等。

所以,如果我在客户端使用方法“processCommand”创建协议,有时我会有不同数量的参数,具体取决于客户端的请求(添加学生时,我必须发送学生对象) ,(从数据库获取数据时,我不必发送任何参数);我也必须返回不同类型的对象。 我怎样才能做到这一点 ? 非常感谢你。

1 个答案:

答案 0 :(得分:3)

正如@marc_s所建议的那样。没有理由重新发明轮子。将WCF与tcpBinding一起使用。

如果您需要自己完成,则需要使用某种序列化。您还需要附加标头,因为TCP是基于流的,并不保证所有内容都到达同一Receive

我会这样做:

  1. 使用BinaryFormatter将对象序列化为字节缓冲区。
  2. 发送包含版本(int)的头文件和字节缓冲区中的字节数(int)
  3. 发送字节缓冲区。