写代码写不下去了,于是找些奇怪的东西做做,想到java生疏了好多年了,于是就练习了一下java与AS的通讯。
现在只进行到建立连接,由于一开始建立连接报错,
Error #2031: Socket Error. URL:
还以为是AIR不支持Socket呢。
去Adobe官网看了一下,老外很多遇到这种问题,如连接。
看了半天他们也没有解决方案,于是觉得改一下端口号也许有些帮助,改了两次把端口号改成5050的时候终于好了。
分别用FD和Flex对服务端进行了连接,结果如下:
java代码如下:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.HashMap; public class ServerMian { private static ServerSocket serve; //管理地址与id private static HashMap<String, String> clientMap; private static BufferedReader in; private static PrintWriter out; public static void main(String[] args) throws IOException { initServe(); } //初始化服务器端口 private static void initServe() throws IOException { serve = new ServerSocket(5050); serve.setReuseAddress(true); clientMap = new HashMap<String, String>(); System.out.print("Serve Inited..."); while(true) { try{ Socket s = serve.accept(); String key = s.getInetAddress() + ":"+ s.getPort(); //todo if(!clientMap.containsKey(key)) { }else { } System.out.println("Recieved connect from"+key); in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new PrintWriter(s.getOutputStream(),true); System.out.println(in.readLine()); }catch(IOException e) { System.out.println(e.getStackTrace()); } } } }
as连接测试代码如下:

private function onCreate():void { var s:Socket = new Socket(); s.connect("localhost",5050); s.addEventListener(Event.CONNECT, onConnected); } private function onConnected(e:Event):void { trace("server connected"); }