【问题标题】:Send TCP type message using WCF使用 WCF 发送 TCP 类型消息
【发布时间】:2021-10-04 15:04:27
【问题描述】:

我正在尝试向 gprs 服务器发送一条 tcp 消息。我试图通过 WCF 来做到这一点,但是,我总是看到有关服务消费的教程或信息,但是,没有服务可以消费。它只是使用 WCF 向服务器发送一个 tcp 类型的消息。我有端口和用于连接的服务器。我怎么能做到?我需要创建用于发送消息的 WCF 客户端,但我不知道如何没有服务。

我正在使用 Visual Studio 和 C# 语言

【问题讨论】:

    标签: c# .net wcf tcp


    【解决方案1】:

    我正在尝试向 gprs 服务器发送一条 tcp 消息。我试图通过 WCF 来做到这一点

    由于远程服务器不是 SOAP 服务,而只是暴露 TCP 端口的服务器,因此您应该使用 TCP API 而不是 WCF。原因是消息内容和协议会有所不同。 WCF 使用通常作为 XML 文本发送的 SOAP 消息,而不是二进制的 TCP。现在您可以将 WCF 配置为序列化为二进制文件,但结果仍然会有所不同。 TCP 与 WCF 的区别还有很多,这里我就不赘述了。

    使用以下 TCP 示例:

    TcpClient client = new TcpClient("localhost", 80); //enter your server ip and port
    
    // Translate the passed message into ASCII and store it as a Byte array
    
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
    
    // Get the stream for writing
    
    NetworkStream stream = client.GetStream();
    
    // Send the message to the connected TcpServer.
    
    stream.Write(data, 0, data.Length);
    
    //Close everything to avoid memory leaks
    
    stream.Close();
    client.Close();
    

    【讨论】:

    • 我已经改进了你的答案。希望你不要介意。
    • @MajdOdeh 谢谢你的回答对我帮助很大。
    猜你喜欢
    • 2020-09-15
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    相关资源
    最近更新 更多