我需要知道如何从Silverlight打开TCP套接字连接。它是如何完成的?如何从SilverLight打开TCP套接字?
1
A
回答
4
快速谷歌搜索提供本网站
2
看看Silverlight中的Socket
类。 MSDN documentation有一个很好的例子。
4
namespace SilverlightSocketClient
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
this.Loaded += PageLoaded;
}
void PageLoaded(object sender, RoutedEventArgs e)
{
var endPoint = new DnsEndPoint(Application.Current.Host.Source.DnsSafeHost, 4530);
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var args = new SocketAsyncEventArgs {UserToken = socket, RemoteEndPoint = endPoint};
args.Completed += OnSocketConnectCompleted;
socket.ConnectAsync(args);
}
private void OnSocketConnectCompleted(object sender, SocketAsyncEventArgs e)
{
var response = new byte[1024];
e.SetBuffer(response, 0, response.Length);
e.Completed -= OnSocketConnectCompleted;
e.Completed += OnSocketReceive;
var socket = (Socket)e.UserToken;
socket.ReceiveAsync(e);
}
private void OnSocketReceive(object sender, SocketAsyncEventArgs e)
{
StringReader sr = null;
try
{
string data = Encoding.UTF8.GetString(e.Buffer, e.Offset, e.BytesTransferred);
sr = new StringReader(data);
//Get data
if (data.Contains("Product"))
{
var xs = new XmlSerializer(typeof(Product));
var product = (Product) xs.Deserialize(sr);
Dispatcher.BeginInvoke(UpdateOrder);
}
//Get another type of data
if (data.Contains("Order"))
{
var xs = new XmlSerializer(typeof(Order));
var order = (Order)xs.Deserialize(sr);
var handler = new SomeEventHandler(UpdateOrder);
this.Dispatcher.BeginInvoke(handler, new object[]
{
order
});
}
}
catch (Exception ex)
{
//handle exception
}
finally
{
if (sr != null) sr.Close();
}
//Prepare to receive more data
var socket = (Socket)e.UserToken;
socket.ReceiveAsync(e);
}
}
}
相关问题
- 1. 从Firefox插件打开TCP套接字
- 2. Silverlight 4和TCP套接字
- 3. 如何确定打开的套接字是TCP还是unix域套接字?
- 4. 从TCP套接字
- 5. Chrome套接字API:如何创建半开放TCP套接字
- 6. 如何从另一个套接字访问tcp套接字?
- 7. 如何从TCP套接字在断开的NodeJS
- 8. 从TCP套接字读取
- 9. C#套接字 - 如何保持套接字打开?
- 10. 如何打开IPCOMP套接字?
- 11. 当升压TCP套接字断开
- 12. TCP套接字开始丢弃在Java
- 13. 为什么要关闭一个死的TCP套接字会影响另一个打开的TCP套接字?
- 14. Boost从TCP套接字接收数据
- 15. Java TCP套接字
- 16. TCP套接字 - InvalidOperationException
- 17. 我的TCP代码中的FIN_WAIT_2阻止打开套接字
- 18. 在Java EE Web应用程序中打开TCP套接字
- 19. 打开SSL TCP套接字并发送Web请求
- 20. 可以通过trigger.io打开TCP套接字?
- 21. 我可以一次打开多少个TCP套接字?
- 22. 套接字和TCP套接字
- 23. 如何在PHP中打开TCP连接
- 24. 套接字不打开?
- 25. “无法打开套接字”
- 26. TCP套接字连接
- 27. TCP套接字连接
- 28. TCP套接字和连接
- 29. 如何设置TCP套接字
- 30. 如何分离TCP套接字消息