【问题标题】:Windows store app soketsWindows 商店应用程序套接字
【发布时间】:2014-01-04 21:30:56
【问题描述】:

我正在编写 Windows 商店应用程序,它使用套接字通过 tcp 协议发送数据。 我把这篇文章作为起点:http://msdn.microsoft.com/en-us/library/windows/apps/jj150599.aspx 但我无法理解某些时刻: 1. 当服务器向我(客户端)发送数据时,它会自动“推送”到 DataReader 阅读器吗? 2. 收到数据时是否有任何事件被调用,或者我只能在阅读器中手动查找 UnconsumedBufferLength 属性? 3. 当我调用witer.WriteByte(byte)时,数据是否发送到服务器?

【问题讨论】:

    标签: c# sockets stream windows-store-apps


    【解决方案1】:

    当有可用数据时,不会引发任何事件。您必须不断查看您的输入流是否包含数据——如果是,您可以读取它们。要发送数据,您可以使用以下方法:

    var writer = new DataWriter(ActiveSocket.OutputStream);
    writer.WriteBytes(data);
    writer.WriteString();
    await writer.StoreAsync();
    await writer.FlushAsync();
    

    要读取数据,您只需调用DataReader 类的Read 方法。

    【讨论】:

      【解决方案2】:

      如果您可以使用任何其他协议(例如 REST 或 SignalR),那么我建议您这样做。 TCP/IP 套接字非常低级(如果没有丰富的经验,很难做好)。

      要直接回答您的问题,您应该始终在套接字上进行读取。您知道读取完成时会收到数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多