c# - 将数据(消息)发送到服务器的最佳(广泛接受)方式是什么

标签 c# messaging

我有一个 C# 应用程序(它是客户端)和一个服务器。现在服务器获取并向客户端发送各种消息,这些消息是字符串,我为此使用 StreamWriter,现在客户端和服务器上的发送消息看起来非常相同,我采用字符串编码成UTF-8然后发送

public void SendMessage(String p)
{
    if (p != "")
    {
        string StringMessage = HttpUtility.UrlEncode(p, System.Text.Encoding.UTF8);

        try
        {
            swSender.WriteLine(StringMessage);
            swSender.Flush();
        }
        catch (IOException e)
        {
            //do some stuff
        }
    }
}

现在,我发送的字符串是这样的:

"SUBJECT@@@@SOMEDATA1<><>SOMEDATA2<><>SOMEDATA3

这会导致一些问题,并让我思考。这是大型应用程序发送/接收数据的方式吗?因为它看起来很傻。如果不是,那么有人可以举例说明大型应用程序如何发送消息吗?

另外:我发送消息的方式让我的嵌套 if 变大了

例如:

if(Subject="something")
    do something
else if(subject="something else")
    do something else

我该如何解决这个问题?

最佳答案

这在很大程度上取决于您的应用需求。
一般来说:不,发明自己的协议(protocol)不是一个好主意。

从客户端向服务器发送消息的方式有很多种。
我建议您阅读一些有关 WCF 的资料,或者如果您使用的是 .NET 2.0 而不是 .NET Remoting。
此外,您可能需要考虑发送 HTTP 消息,因为有大量框架可以执行此操作。

关于c# - 将数据(消息)发送到服务器的最佳(广泛接受)方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888949/

相关文章:

javascript - 如何使用 breezejs 保护添加或删除实体

erlang - 使用它进行 JSON 数据传输

c# - 同一解决方案的其他项目中的自定义附加程序

java - ActiveMQ:如何平衡多个Message Broker实例之间的负载?

Android,处理程序消息传递

spring - 如何在 jms-spring 集成中向消息监听器 bean 注入(inject)消息选择器?

rabbitmq - 在队列之间移动消息rabbitMQ

c# - AutoMapper - 忽略所有实现的基类的属性

c# - 使用 LINQ 合并 2 个列表并对多个属性求和

c# - 使用 ToList() 与 new List(IEnumerable<T>) 之间的性能差异