0

さて、基本的に私はマルチプレイヤー フラッシュ ゲームをセットアップする方法を見つけようとしてきましたが、最近、Java を使用して独自のサーバーをコーディングすることにしました。何時間もの試行錯誤の末、ようやく成功したのですが、問題が発生しました。これが私のサーバーとクライアントのコードです。

サーバ:

    import java.net.*;
    import java.io.*;

    public class ServerFlash
    {   
        public static void main(String[] args) throws IOException
        {
            ServerSocket serverSocket = null;
            Socket connection = new Socket();
            InputStream in = null;
            boolean listening = true;

            try
            {
                serverSocket = new ServerSocket(14804);
                System.err.println("The server is now bound to port.");
            }
            catch (IOException e)
            {
                System.err.println("Could not bind server to port.");
                System.exit(-1);
            }

            while (listening)
            {
                connection = serverSocket.accept();
                if(connection!=null)
                {
                    System.err.println("Connection to client has been established.");

                    in = connection.getInputStream();
                    listening = false;
                }
            }
            while (!listening)
            {
                int data = in.read();
                if(data!=-1)
                {
                    System.err.println(data);
                }
            }

        }
    }

クライアント:

var server = new Socket();
server.connect("[insertmyip]",14804);

server.addEventListener(Event.CONNECT, onConnect);
server.addEventListener(Event.CLOSE, onClose);
server.addEventListener(IOErrorEvent.IO_ERROR, onError);
server.addEventListener(ProgressEvent.SOCKET_DATA, onResponse);
server.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError);

function onConnect(e:Event)
{
    trace("Connection Established.");
}
function onClose(e:Event)
{
    trace("Socket has been Close.");
}
function onError(e:Event)
{
    trace("An Error has occured." + e);
}
function onResponse(e:Event)
{
    trace("Responce has been recieved.");
}
function onSecError(e:Event)
{
    trace("A SecError has occured.");
}

サーバーを起動すると、すべて問題ありません。ただし、クライアントを起動すると、サーバーに正常に接続されますが、突然サーバーがクライアントからデータを受信し (コードを読み取ると、サーバーは受信データを読み取って表示します)、約 15 行のコードを表示します。クライアントからの新しいデータは受け入れません。ただし、これはクライアントが Web サイト (またはフォルダー) から起動された場合にのみ発生しますが、Adobe Flash Pro でテストとしてクライアントを開くと正常に動作します。

ファイルが必要な場合は、それらを引き渡します。

4

0 に答える 0