我正在编写应用程序,在要求中我必须与一个通过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();
}
答案 0 :(得分:0)
我建议使用WCF为您生成客户端并实现您自己的通道来处理来自客户端的通信。你应该能够连接你的代码。当然,大多数套接字通信已经由WCF完成,因此在使用WCF时,您首先不需要代码。
请参阅:
答案 1 :(得分:0)
这个MSDN article shows how to build a UDP transport based binding适用于您的客户端的WCF。假设您可以访问服务的WSDL,那么构建和配置此UDP绑定是值得的,因为它将为您处理所有序列化/反序列化。文章代码作为WCF/WF samples for .NET 4的一部分提供,因此您只需下载并安装示例即可开始使用。
如果您无法访问WSDL,那么至少可以查看示例代码以了解如何处理UdpClient内容。