我有一个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(Subject="something")
do something
else if(subject="something else")
do something else
我该如何解决这个问题?
答案 0 :(得分:3)
这一切都在很大程度上取决于您的应用程序的需求 一般来说:不,发明自己的协议并不是一个好主意。
有很多方法可以将消息从客户端发送到服务器 我建议你在WCF上做一些阅读,或者如果你使用.NET 2.0而不是.NET Remoting 此外,您可能需要考虑发送HTTP消息,因为有很多框架可以做到这一点。
答案 1 :(得分:1)
一种方法是使用XML-RPC。我用了this for .NET。我按照说明进行了修改,并让客户端/服务器在30分钟内工作,另外10个按照我的喜好进行修改。本质上,你通常会调用函数,并通过库的魔法阻止服务器执行代码,它将返回结果。 RPC =远程过程调用。
如果您使用asp.net使用标有IIS的说明,即使您使用fastcgi或apache在linux上也是如此。我忽略了那个错误,因为它被标记为IIS。有一个.NET Remoting选项(如果服务器不是asp.net,而是另一个应用程序)可用。
一个不太好的选择是学习webclient并将json字符串发布到服务器。然后以json的形式阅读响应。 XML-RPC是非常标准和建议的。
答案 2 :(得分:0)
尝试使用HttpUtility.HtmlEncode方法
代替UrlEncode()