gpt4 book ai didi

C# Silverlight 等效于 Windows 窗体方法?

转载 作者:行者123 更新时间:2023-11-30 15:44:10 25 4
gpt4 key购买 nike

这等价的是什么:

while (Offset < packet.Data.Length)
{
Offset += m_Socket.Receive(packet.Data, Offset, packet.Data.Length - Offset, SocketFlags.None);
}

在 Siliverlight 中?这是 Windows 窗体,不适用于 Silverlight:/任何帮助将不胜感激。

谢谢

函数的作用是,在“已完成”的 sub 上,我从我的服务器捕获了 4 个字节,这是一个 header 长度,在我捕获了这 4 个字节之后,我想进入 endReceive 方法来获取其余的数据包长度。

我如何在 Silverlight 中执行此操作?

最佳答案

Silverlight 没有同步 Socket 方法。您将需要使用 Socket.ReceiveAsync Method .

这里的好例子:Pushing Data to a Silverlight Client with Sockets .

[编辑] 做这样的事情的基本思路:

var e = new SocketAsyncEventArgs();
e.Completed += SocketReceiveCompleted;
Socket.ReceiveAsync(e);

private void SocketReceiveCompleted(object sender, SocketAsyncEventArgs e)
{
Offset += e.BytesTransferred;
if (Offset > packet.Data.Length)
{
Socket.Close(); // or do whatever you need to do after your while loop
return;
}
Array.Copy(e.Buffer, 0, packet.Data, Offset, e.BytesTransferred);
}

关于C# Silverlight 等效于 Windows 窗体方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com