我需要知道如何從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套接字消息