我需要知道如何从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套接字
- 4. Chrome套接字API:如何创建半开放TCP套接字
- 5. 如何从另一个套接字访问tcp套接字?
- 6. 从TCP套接字读取
- 7. 如何从TCP套接字在断开的NodeJS
- 8. C#套接字 - 如何保持套接字打开?
- 9. 为什么要关闭一个死的TCP套接字会影响另一个打开的TCP套接字?
- 10. 我的TCP代码中的FIN_WAIT_2阻止打开套接字
- 11. 在Java EE Web应用程序中打开TCP套接字
- 12. 打开SSL TCP套接字并发送Web请求
- 13. 套接字和TCP套接字
- 14. 如何在PHP中打开TCP连接
- 15. “无法打开套接字”
- 16. 套接字不打开?
- 17. TCP套接字连接
- 18. 如何分离TCP套接字消息
- 19. 如何从流(tcp)套接字读取确切的字节数?
- 20. 如何从Web套接字开始?
- 21. 从tcp到udp的Java套接字
- 22. Silverlight c#套接字
- 23. Python:套接字连接仍然打开
- 24. Netty WebSockets和TCP套接字
- 25. TCP套接字在Android 4.0.3
- 26. TCP套接字管道
- 27. Iphone上的TCP套接字
- 28. PHP插座/ TCP套接字
- 29. 套接字在c tcp
- 30. AS3 TCP套接字丢包