关于WCF和socket通信的问题,请高手解决

avShell 2010-11-05 12:49:08
系统的要求是这样的,
用户信息专用一台服务器,所以对用户的操作都由socket来监听并操作,这一步是c++编写实现的。
协议是普通的xml形式传输,WCF中提供接口给WEB端。
用户在WEB端操作时,会首先经过wcf ,请问在wcf契约实现里怎样编写对这个socket服务器的连结
并实现长连接呢。

求高手赐教。

小弟是做c++的,由于系统需要,不得不研究wcf,如明表述错误,请发表疑问,
...全文
390 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
avShell 2010-12-17
  • 打赏
  • 举报
回复
多谢, 用的短连接,后来才发现根本没办法去从外部开启WCF方法,
vrhero 2010-12-17
  • 打赏
  • 举报
回复
对你的Socket服务来说WCF服务只是个客户端...另外你的WCF承载于IIS,显然不适合也不需要搞什么长连接...
chengwen2402163 2010-12-17
  • 打赏
  • 举报
回复
如果是WEB作为C端,可以不用长连接啊,长时间闲置连接也不怎么好吧,
另外你的WCF程序是包在宿主程序中的,宿主程序除了开关还怎么操作WCF内置函数?


public void Send(string p_message)
{
byte[] msg = System.Text.UTF8Encoding.UTF8.GetBytes(p_message);
try
{
if(socket!=null)
{
socket.Send(msg);
}

}
catch (SocketException ex)
{
//
}
}

public string RecvMessage()
{
string retvalue = String.Empty;
byte[] bytes = new byte[10240];
try
{
int n = 0;
do
{
n = socket.Receive(bytes);
if (n > 0)
{
retvalue += System.Text.UTF8Encoding.UTF8.GetString(bytes, 0, n);
}
} while (n == bytes.Length);

}
catch (SocketException e)
{
throw new Exception("消息错误");
}
return retvalue;

}
avShell 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]

引用楼主 avshell 的回复:
请问在wcf契约实现里怎样编写对这个socket服务器的连结
并实现长连接呢。

WCF的目的就是对web端隐藏背后的实现机制,因此它不是“契约”上的定义,认识wcf服务方法的实现程序来实现的。wcf方法中调用你的其它客户端访问socket一样的方法。
[/Quote]
和其它客户端程序一样的写法?没有WCF专用的连结吗?
tcpclient类?
wyman25 2010-11-05
  • 打赏
  • 举报
回复
WCF不太懂,顶一下围观牛人。
  • 打赏
  • 举报
回复
[Quote=引用楼主 avshell 的回复:]
请问在wcf契约实现里怎样编写对这个socket服务器的连结
并实现长连接呢。
[/Quote]
WCF的目的就是对web端隐藏背后的实现机制,因此它不是“契约”上的定义,认识wcf服务方法的实现程序来实现的。wcf方法中调用你的其它客户端访问socket一样的方法。
jiewei915 2010-11-05
  • 打赏
  • 举报
回复

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧