Silverlight4与TCP进行通信实例,.NET TCP双向通讯(2)
里面有两个cs文件, SocketPolicy.cs Code [http://www.xueit.com] 1 public static class SocketPolicy 2 { 3 public const string Policy = @" 4 ?xml version=""1.0"" encoding =""utf-8""?5 access-poli

里面有两个cs文件,
SocketPolicy.cs

1 public static class SocketPolicy 2 { 3 public const string Policy = @" 4 <?xml version=""1.0"" encoding =""utf-8""?> 5 <access-policy> 6 <cross-domain-access> 7 <policy> 8 <allow-from> 9 <domain uri=""*"" /> 10 </allow-from> 11 <grant-to> 12 <socket-resource port=""4502-4530"" protocol=""tcp"" /> 13 </grant-to> 14 </policy> 15 </cross-domain-access> 16 </access-policy> 17 "; 18 }
还有一个文件,内容太长,这里就不给代码了,大家可以自己新建一下看看。
拷到你的项目中就可以,不用手写。
由于代码很多这里我就不全写出来了,只把需要注意的地方告诉大家,我会把整个的demo提供给大家下载。
App.config 做为这个宿主程序的灵魂,这个破config整得我都快疯掉了。这里面就是普通的wcf配置,请注意一下我写注释的地方就可以。

1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <system.web> 4 <compilation debug="true" /> 5 </system.web> 6 <system.serviceModel> 7 <protocolMapping> 8 <add scheme="tcp" binding="netTcpBinding"/> 9 </protocolMapping> 10 11 <bindings> 12 <customBinding> <!--注意,这里只能使用自定义的绑定,应为Silverlight4测试版并不完全技术net.tcp--> 13 <binding name="WebChat.Service.ChatService1"> 14 <binaryMessageEncoding></binaryMessageEncoding> 15 <tcpTransport></tcpTransport> 16 </binding> 17 </customBinding> 18 <netTcpBinding> 19 <binding name ="myTcpBinding" portSharingEnabled="true"></binding> 20 </netTcpBinding> 21 </bindings> 22 23 <services> 24 <service behaviorConfiguration="WebChat.Service.ChatServiceBehavior" name="WebChat.Service.ChatService"> 25 <endpoint 26 address="Service" binding="customBinding" 27 contract="WebChat.Service.IChatService" 28 bindingConfiguration="WebChat.Service.ChatService1" > 29 </endpoint> 30 <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> <!--这个一个要写的!!!暴露元数据。--> 31 <host> 32 <baseAddresses> 33 <add baseAddress="http://localhost:4504/"/> 34 <add baseAddress="net.tcp://localhost:4503/"/> 35 </baseAddresses> 36 </host> 37 </service> 38 </services> 39 <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 40 <behaviors> 41 <serviceBehaviors> 42 <behavior name="WebChat.Service.ChatServiceBehavior"> 43 <serviceMetadata httpGetEnabled="true" /> 44 <serviceDebug includeExceptionDetailInFaults="false" /> 45 </behavior> 46 </serviceBehaviors> 47 </behaviors> 48 </system.serviceModel> 49 </configuration>
宿主程序启动

1 class Program 2 { 3 static void Main(string[] args) 4 { 5 PolicyServer ps = new PolicyServer(SocketPolicy.Policy); //启动943策略文件监听端口 6 7 ServiceHost host = new ServiceHost(typeof(WebChat.Service.ChatService)); 8 Console.WriteLine(); 9 host.Open(); 10 System.Console.WriteLine("聊天室服务器开始监听..."); 11 System.Console.WriteLine("按 ENTER 停止服务器监听..."); 12 System.Console.ReadLine(); 13 host.Abort(); 14 host.Close(); 15 ps.Close(); 16 } 17 }
- 上一篇:Fortran语言转.NET使用指针
- 下一篇:强大C#(wpf)开发台球游戏源码
精彩图集
精彩文章
热门标签
算法效率
任一行数据
多行合并
undo损坏
JS文件
And
qq邮箱发邮件
dbcp连接池
ClientAliveI
iis假死
创建菜
Moxa
哪个
pclose()
vmstat
json字符串
框架设计
this
队列服务
iptable
文件列表
虚拟表
隐藏表单控件
狗狗影视
参数模式
override
0x8007007e
一般
Drupal数据库
30分钟入门教程
无法访问
静态绑定
利用
常用函
发送图片流
监控请求
农历
构造
C标准库
命令行
sqlserver数据库
日志清理
CSS图文混排
改变
上标
包括
分类树
表类型
左右声道
分配权限
问号表达式
初识
1到100的和
url大小写
巧用
pyv8学习
奇数
$.ajax
窗口关闭
临时储存
赞助商链接
@CopyRight 2002-2008, 1SOHU.COM, Inc. All Rights Reserved QQ:1010969229