– 실버라이트에서 사용가능한 TCP 소켓의 포트 범위도 4502 – 4534으로 한정되어 있음.
– 해당포트의 권한을 부여하기 위해서는 웹에서 clientaccesspolicy.xml 사용할때와 유사하게 소켓사용시에도 Policy파일이 필요.
즉, clientaccesspolicy.xml 을 내려보내주는 Policy서버(포트는 반드시 943)를 만들어주어야 함.
폴리시 서버의 구축은 구글에서 Silverlight Policy Server로 찾아보면 많이 나오므로 참고 바람.
– Policy서버를 만들기 싫다면 구동서버의 기본 웹포트인 80포트에 clientaccesspolicy.xml을 넣어주면 됨
그리고 Connect시에 ConnectAsync전에 SocketClientAccessPolicyProtocol의 값에 Http를 넣어주면 됨.
var args = new SocketAsyncEventArgs();
args.SocketClientAccessPolicyProtocol = SocketClientAccessPolicyProtocol.Http;
….
this.Socket.ConnectAsync(args);
( 테스트결과 유사한 8080포트는 안되므로, 반드시 80포트에 넣어야 함)
– clientaccesspolicy.xml 의 내용