0

我正在编写应用程序,要求我必须与一个通过 UDP 发送 SOAP 消息的设备进行通信。我正在使用 .Net UDPClient 类与此设备进行通信。我在 UDPClient 中收到了这个回复,但我得到的是 Byte[] 数组。如何将其转换为 SoapMessage 对象?

    public void ReceiveCallback(IAsyncResult ar)
    {
        UdpClient udpClient = (UdpClient)((UdpState)(ar.AsyncState)).udpClient;
        IPEndPoint ipEndpt = (IPEndPoint)((UdpState)(ar.AsyncState)).ipEndpt;

        Byte[] receiveBytes = udpClient.EndReceive(ar, ref ipEndpt);
        string receiveString = Encoding.ASCII.GetString(receiveBytes);
                   //Here receiveString  I want to convert to SoapMessage
        BeginReceive();
    }
4

2 回答 2

0

这篇MSDN 文章展示了如何为 WCF 构建基于 UDP 传输的绑定,您可以将其用于您的客户端。假设您可以访问服务的 WSDL,构建和配置此 UDP 绑定是值得的,因为它将为您处理所有序列化/反序列化。文章代码作为.NET 4 的 WCF/WF 示例的一部分提供,因此您只需下载并安装示例即可开始使用。

如果您无权访问 WSDL,那么至少您可以查看示例代码以了解如何处理 UdpClient 内容。

于 2011-05-12T18:10:20.297 回答
0

我建议使用 WCF 为您生成客户端并实现您自己的通道来处理与客户端之间的通信。您应该能够连接您的代码。当然,大多数套接字通信已经由 WCF 完成,因此在使用 WCF 时,您实际上并不需要您的代码。

看:

http://msdn.microsoft.com/en-us/library/ms789050.aspx

于 2011-05-12T15:20:15.537 回答