这相当于什么?while (Offset packet.Data.Length){Offset += m_Socket.Receive(packet.Data, Offset, packet.Data.Length - Offset, SocketFlags.None);}在Siliverlight中?那是Windows窗体,不适用于Silverligh...

这相当于什么?
while (Offset < packet.Data.Length)
{
Offset += m_Socket.Receive(packet.Data, Offset, packet.Data.Length - Offset, SocketFlags.None);
}
在Siliverlight中?那是Windows窗体,不适用于Silverlight:/任何帮助将不胜感激.
谢谢
该函数的作用是,在“完成的”子项上,我捕获了4个字节,这是服务器中的标头长度,在捕获了这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);
}
织梦狗教程
本文标题为:Windows窗体方法的C#Silverlight Equivlant?


基础教程推荐
猜你喜欢
- C# Chart折线图使用鼠标滚轮放大、缩小和平移曲线方式 2023-06-21
- c# – 如何知道何时将新记录添加到数据库中 2023-11-10
- C# .NET创建虚拟目录的方法详解 2023-05-11
- C#中的composite模式示例详解 2023-06-15
- C# wpf简单颜色板的实现 2023-05-05
- C#中使用ArrayPool和MemoryPool实例 2023-04-20
- Unity打开淘宝app并跳转到商品页面功能的实现方法 2023-04-21
- Unity Shader实现黑幕过场效果 2023-04-26
- C#实现飞行棋项目 2023-02-08
- C#引用类型和值类型的适用场合和区别 2023-01-11