Ich muss wissen, wie eine TCP-Socket-Verbindung von Silverlight zu öffnen. Wie wird es gemacht?Wie öffne ich einen TCP-Socket von SilverLight?
1
A
Antwort
4
Eine schnelle Google-Suche liefert diese Website
2
Werfen Sie einen Blick auf die Socket
Klasse in Silverlight. Die MSDN documentation hat eine gute Probe.
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);
}
}
}
Verwandte Themen
- 1. Wie öffne ich einen Ordner?
- 2. Wie öffne/benutze ich einen Dateideskriptor
- 3. Wie öffne ich einen Lucene 4.3 Index?
- 4. Wie öffne ich einen Link in Android?
- 5. Wie öffne ich einen Stream von UPD-Plätzen?
- 6. Wie schreibe ich einen einfachen Silverlight Komponententest?
- 7. Wie zeichne ich einen Pfeil in Silverlight
- 8. Wie öffne ich mehrere URLs von richtextbox
- 9. Wie öffne ich eine URL von Terminal
- 10. Wie öffne ich Datei/Verzeichnis?
- 11. Wie öffne ich einen Port auf Google Compute Engine
- 12. Wie öffne ich einen benutzerdefinierten Kernel mit opencv?
- 13. Wie öffne ich VCE-Dateien?
- 14. Wie öffne ich einen Dateidialog mit Javascript mit CEF
- 15. Wie öffne ich einen modalen Dialog im Java Applet?
- 16. NetBeans IDE-Plugin, wie öffne ich einen Terminal-Tab?
- 17. Wie öffne ich einen Iframe-Link innerhalb desselben Iframes?
- 18. Wie öffne ich einen Link in einem anderen Browser?
- 19. Wie öffne ich einen Link auf einer anderen Seite?
- 20. Wie öffne ich einen Dateistream zum Lesen mit Scrapy?
- 21. Wie öffne ich einen neuen Bildschirm in Android?
- 22. Was passiert mit TCPSocket # in Ruby?
- 23. tcpsocket wiederverbinden (oder wie man geschlossenen Socket erkennt)
- 24. Wie öffne ich eine Kerndatenbank?
- 25. Wie öffne ich mehrere Terminals?
- 26. Wie öffne ich die Bestätigungsschaltfläche?
- 27. Wie öffne ich eine .bundle-Datei
- 28. Wie öffne ich Port in CentOS
- 29. Wie kann ich einem Steuerelement in Silverlight einen Status hinzufügen?
- 30. Wie öffne ich ein minimiertes wxPython-Fenster