如何使用套接字编写面向对象的代码?

时间:2014-03-03 23:22:21

标签: c# oop sockets

我从未见过有人对此发表评论。使用套接字时应该如何编程?

例如,比较Web服务和套接字,使用Web服务,我可以使用明确的名称创建方法。我怎么能用套接字做到这一点?如果我想在不同的课程中使用“方法”怎么办?我该如何组织它们?

我正在尝试制作游戏。如果我需要300个方法并且需要使用套接字怎么办? 那怎么样?

udpClient.Connect("localhost", 15000);
Byte[] sendBytes = Encoding.ASCII.GetBytes("MyClass MyMethod(firstParameter");
udpClient.Send(sendBytes, sendBytes.Length);

我需要将字符串传递给UDP通信。如何在服务器端组织这个? 如何拆分类和方法?或者我是否需要在服务器端放置300“if”?

if(message.Contains("MyClass MyMethod"))
{
   MyClass.MyMethod();
}
if(message.Contains("MyClass MyMethod2"))
...
if(message.Contains("MyClass MyMethod3"))
...

1 个答案:

答案 0 :(得分:2)

您所谈论的Web服务往往在收到的实际数据和您提供的方法之间有几层。例如:

  1. 客户端发送消息
  2. 服务器收到消息
  3. 服务器将消息转换为可用的内容
  4. 服务器向Web服务方法提供可用消息
  5. 在您的情况下,您希望通过直接套接字连接模拟相同类型的功能,而不想使用Web服务框架为您做繁重的工作,因此您需要自己提供2,3和4。

    如果您有一种标准的数据结构化方法,以便您可以向服务器提供信息,例如“您想要调用哪种方法?”,这将有所帮助,坦率地说,您可以随心所欲地执行此操作。它是你的客户端/服务器,你可以使用SOAP,JSON,你甚至可以创建自己的固定长度字段格式,只要双方都说相同的数据结构。

    如果您对特定路径有特定的实施问题,欢迎您提出其他问题。