WCF是否提供避免端口转发的选项?

时间:2012-12-26 09:10:12

标签: c# wcf nat portforwarding

过去甚至现在的许多程序都是基于服务器/客户端运行的。示例包括TeamSpeak,Ventrilo,Mumble等。这些程序通常需要进入路由器和转发端口,以便运行服务器的计算机可以从正在向服务器路由器发送连接请求的客户端获取消息。

这些天WCF中有什么东西可以防止那种事情发生吗?我有一个聊天/文件传输程序,我真的更喜欢用户不必知道如何转发他们的端口。

UPnP或Punchthrough的方式有哪些选择?必须通过并转发程序使用的所有特定端口的概念似乎已经过时了。

1 个答案:

答案 0 :(得分:1)

使用WCF查看WS-Discovery:

http://weblogs.asp.net/gsusx/archive/2009/02/13/using-ws-discovery-in-wcf-4-0.aspx

发现协议否定了中心的“服务器路由器”。它使用UDP广播来通知客户。

请注意,发现协议本身只是一种无状态消息传递协议。它没有保证或状态同步。例如,如果客户端A没有从客户端B接收广播消息,则客户端A不会知道客户端B.维护此P2P状态的协议开销是复杂的,并且通常用于保持该状态的单个服务器是最简单的方法。