我有以下场景:
WCF主机服务器<--网络连接到--> WCF笔记本电脑客户端<--连接到--> WCF客户端2
我还有一个WCF主机客户端,它在WCF主机所在的服务器机器上有一个UI。此客户端调用主机服务器上的服务。
我连接了WCF主机客户端以列出连接的WCF笔记本电脑客户端;我使用了双工连接,以便在双击其中一个连接的笔记本电脑客户端时,双工通道将用于与选定的WCF笔记本电脑客户端进行通信。
但是,我需要将一个大型数据文件传输回WCF笔记本电脑客户端,而不是字符串消息。我无法使用回调通道进行流式处理,因为双工不允许流式处理。
注意:根据需求,我必须使用NetTcpBinding。
所有WCF笔记本电脑客户端都使用相同的IP和端口。
因此,问题是如何在WCF主机客户端UI上选择已连接的笔记本电脑,并将流对象发送回所选的笔记本电脑?由于回调通道知道笔记本电脑的位置,我可以使用该信息以某种方式打开到该特定笔记本电脑的新wcf连接(或新套接字连接)吗?我使用guid在WCF主机客户端上注册每个笔记本电脑,并使用它来确定哪个WCF笔记本电脑客户端要发回字符串消息。
我尝试过的方法:我尝试在WCF笔记本电脑客户端使用回调消息从主机服务器调用不同的服务;这是可行的,并将字符串消息从主机服务器返回到特定的笔记本电脑客户端,但我无法将字节数据发回,因为我收到了协定不匹配错误。
我实际要做的是从服务器向笔记本电脑发送一个大文件,然后将该文件转发到WCF客户端2,该客户端只连接到笔记本电脑,而不是连接到网络。WCF CLIENT 2实际上是一个装有XP的小盒子。除非我知道要将文件发送到哪台笔记本电脑,否则所有笔记本电脑都会收到文件,我只需要选定的笔记本电脑接收文件,然后将其转发到其连接的机器。我正在使用套接字连接在笔记本电脑和机箱之间进行转发。
任何见解或帮助都将不胜感激。
发布于 2011-02-01 21:02:26
一种方法是在服务器端托管另一个允许流式传输的服务。只需通过双工通道向笔记本电脑发送一条消息,其中包含位置和某种标识符,以便使用其他服务进行下载。
https://stackoverflow.com/questions/4862596
复制相似问题