快速业务通道

用php的socket跟flash的socket通信

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
; // 253 - DO (option code)
21. private const DONT:int = 0xFE; // 254 - DON''T (option code)
22. private const IAC:int = 0xFF; // 255 - Interpret as Command (IAC)
23.

24. private var serverURL:String;
25. private var portNumber:int;
26. private var socket:Socket;
27. private var ta:TextArea;
28. private var state:int = 0;
29. System.useCodePage = false;
30. public function CustomSocket(server:String, port:int, output:TextArea)
31. {
32. serverURL = server;
33. portNumber = port;
34. ta = output;
35. socket = new Socket();
36. socket.addEventListener(Event.CONNECT, connectHandler);
37. socket.addEventListener(Event.CLOSE, closeHandler);
38. socket.addEventListener(ErrorEvent.ERROR, errorHandler);
39. socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
40. socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler);
41.

42. //        Security.loadPolicyFile("xmlsocket://" + serverURL + ":"+portNumber);
43.

44. try
45. {
46. msg("Trying to connect to" + serverURL + ":" + portNumber + "\n");
47. socket.connect(serverURL,portNumber);
48. }
49. catch (error:Error)
50. {
51. msg(error.message + "\n");
52. // socket.close();
53. }
54. }
55. public function ioErrorHandler(event:IOErrorEvent):void
56. {
57. msg("Unable to connect: socket error.\n");
58. }
59. public function writeBytesToSocket():void {
60. socket.writeUTFBytes("sssssssssssssssssssss");
61. socket.flush();
62. }
63. private function connectHandler(event:Event):void {
64. if (socket.connected) {
65. msg("connected...\n");
66.

67. } else {
68. msg("unable to connect\n");
69. }
70. }
71. private function closeHandler(event:Event):void
72. {
73. msg("closed...\n");
74. }
75. private function errorHandler(event:ErrorEvent):void {
76. msg(event.text + "\n");
77. }
78. private function dataHandler(event:ProgressEvent):void {
79. while ( socket.bytesAvailable ) {
80. // Read a byte from the socket and display it
81. var data = socket.readUTFBytes(socket.bytesAvailable);
82. ta.text+=data;
83. }
84. }
85. private function msg(value:String):void {
86. ta.text += value;
87. ta.dispatchEvent(new Event(Event.CHANGE));
88. setTimeout(setScroll, 100);
89. }
90. public function setScroll():void {
91. ta.verticalScrollPosition = ta.maxVerticalScrollPosition;
92. }
93. public function closeSocket():void{
94. socket.close();
95. }
96. public function sendM(e:String):void
97. {
98. socket.writeUTFBytes(e);
99. socket.flush();
100. }
101. }
102.

103. }

(3).安全策略

基本内容见此文章:http://wangleifire.javaeye.com/blog/335034

flash的安全策略是很严格的,特别是在flash 10中,当使用socket的时候必须存在策略文件才能继续传输数据,这个文件以前可以直接存放在根目录即可,而现在要求必须

在socket中直接传输才行,默认情况下flash会在服务器的843端口寻找这个策略文件的传输socket,可是php中开多个端口传输很有问题,不能实现多线程是主要问题,所以

这个方法不太好,也不太直接,其实还有一个非常直接的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号