大佬教程收集整理的这篇文章主要介绍了silverlight 连接 socket 通讯,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_@R_772_11289@_25@
|
@H_@R_772_11289@_25@步骤1: 建立一个console的服务端项目
因为是socket开发,肯定要有一个sever端,因为是演示,所以示例中直接将服务器端的侦听代码 写入了main()函数,代码段如下:
static
@H_874_73@
void
@H_874_73@ Main(
String
@H_874_73@[] args)
{ Console.WriteLine( " 使用Silverlight Socket 发送信息演示: " @H_874_73@); Console.WriteLine( ================================================== "" @H_874_73@); Socket socket @H_874_73@= new @H_874_73@ Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); socket.bind( @H_874_73@ IPEndPoint(Ipaddress.Any, 4502 @H_874_73@)); socket.Listen( 5 @H_874_73@); while @H_874_73@ ( true @H_874_73@) { Socket s @H_874_73@ socket.Accept(); Thread t @H_874_73@ Thread(() @H_874_73@=> @H_874_73@ { try @H_874_73@ { @H_874_73@) { byte @H_874_73@[] buffer @H_874_73@[ 1024 @H_874_73@]; int @H_874_73@ receive @H_874_73@ s.Receive(buffer); if @H_874_73@ (receive @H_874_73@!= @H_874_73@ 0 @H_874_73@) { Console.WriteLine(Encoding.Unicode.GetChars(buffer,0)">,receivE)); } } } finally @H_874_73@ { s.Close(); } }); t.Start(); } } 这里基本上都是开发socket应用时常用的类,@R_115_6963@,相信搞过socket开发的朋友一看便知. @H_@R_772_11289@_25@步骤2: 创建silverlight Application 项目(也就是我们说的client) 将下面的xaml代码放入Page.xaml中 @H_801_219@< UserControl x:Class ="SocketClient.Page" xmlns ="http://scheR_371_11845@as.microsoft.com/client/2007" xmlns:x ="http://scheR_371_11845@as.microsoft.com/winfx/2006/xaml" Width ="400" Height ="300" > @H_874_73@ @H_874_73@Grid x:Name ="LayoutRoot" BACkground ="White" ShowGridLines ="True" @H_874_73@ @H_874_73@Grid.RowDeFinitions @H_874_73@ @H_874_73@RowDeFinition /> </ Grid.RowDeFinitions @H_874_73@ @H_874_73@TextBox ="txtToSend" Grid.Row ="0" @H_874_73@Button Grid.Row ="1" Click ="OnSend" Content ="Send" Margin ="20" Grid @H_874_73@ @H_874_73@UserControl > 然后将下面的cs代码放入Page.xaml.cs文件: @H_801_219@public partial class @H_874_73@ Page : UserControl { Socket socket; // @H_874_73@发送信息按钮的单击事件 @H_874_73@ @H_874_73@ OnSend( object @H_874_73@ sender,EventArgs args) { @H_874_73@[] bytes @H_874_73@ Encoding.Unicode.GetBytes(txtToSend.Text); socket ProtocolType.Tcp); socketasynceventargs socketArgs socketasynceventargs() { RemoteEndPoint @H_874_73@ DnsEndPoint( Application.Current.Host.source.DnsSafeHost,0)">) }; socketArgs.Completed @H_874_73@+= @H_874_73@ OnOperationCompleted; socketArgS.UserToken @H_874_73@ bytes; socket.ConnectAsync(socketArgs); } @H_874_73@将数据放入buffer并进行异步发送 @H_874_73@ OnOperationCompleted( socketasynceventargs e) { e.Completed -= OnOperationCompleted; [])e.UserToken; socketasynceventargs sendArgs @H_874_73@ socketasynceventargs(); sendArgs.SetBuffer(bytes,bytes.Length); sendArgs.Completed @H_874_73@ OnSendCompleted; socket.SendAsync(sendArgs); } @H_874_73@发送完成后,关闭当前socket链接 @H_874_73@ OnSendCompleted( socketasynceventargs E) { socket.Close(); } } 这样,程序开发就完成了.下面进行第三步,演示(如下图): |
@H_450_457@
这几天一直在搞这个东西,网上的前辈们搞的有一个很好的实例,但是那个是以前 silverlight 1 可以用的版本,现在的2根本用不鸟,需要配置一个安全策略服务程序跑起来,让silverlight程序能够通过挂起的连接通讯 ···晕 不能上附件?
以上是大佬教程为你收集整理的silverlight 连接 socket 通讯全部内容,希望文章能够帮你解决silverlight 连接 socket 通讯所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。