蛋疼时候的一些东西

写代码写不下去了,于是找些奇怪的东西做做,想到java生疏了好多年了,于是就练习了一下java与AS的通讯。

现在只进行到建立连接,由于一开始建立连接报错,

Error #2031: Socket Error. URL:

还以为是AIR不支持Socket呢。

去Adobe官网看了一下,老外很多遇到这种问题,如连接

看了半天他们也没有解决方案,于是觉得改一下端口号也许有些帮助,改了两次把端口号改成5050的时候终于好了。

分别用FD和Flex对服务端进行了连接,结果如下:

java代码如下:

View Code
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连接测试代码如下:

View Code
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");
            }
原文地址:https://www.cnblogs.com/adoontheway/p/3067279.html