0

キーボード プレスを送信して別のコンピューターで受信する機能を備えたプログラムを作成または検索するためのヘルプが得られるかどうか疑問に思っていました。これを使用して、コンピューター間で友人とマルチプレーヤー フラッシュ プレーヤー ゲームをプレイしたいと考えています。「logmein」のようなプログラムがいくつかあることは知っていますが、両方のユーザーが同時にキーボードを使用することはできません。(キーを押すと、コンピューターのユーザーはキーを同時に押すことができません。キーが反応しないためです。) 私は Java しか知らず、まったく初心者です。ポートを介して、またはWebサーバーに情報を送信する必要がある場合は、それを書く必要があると思います。このプログラムに関するご意見やご提案をお待ちしております。ありがとうございます。

4

1 に答える 1

2

基本的にあなたが探しているのはチャットルーム プログラムですか? mIRCを調べてみましたか?mIRC は、無料のインターネット リレー チャットです。プログラムの要件は正確には何ですか?それがなければならない特定のサイズはありますか?あなたとあなたの友人があなたのコンピュータ画面全体を占有してプレイしているこれらのフラッシュゲームはありますか?

プログラムの構築には Web サーバーが必要で (インターネットにアクセスできるコンピューターなら何でも)、トラフィックが通過できるようにネットワークのポートを開く必要があります。

Java の基本的なサーバーは次のようになります。最初の接続の後、この「サーバー」は接続を閉じることに注意してください。

import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Server
{
private static ServerSocket serverSocket;
private static Socket clientSocket;
private static BufferedReader bufferedReader;
private static String inputLine;
public static void main(String[] args)
{
    // Wait for client to connect on 63400
    try
    {

        serverSocket = new ServerSocket(63400);
                    while(true){
        clientSocket = serverSocket.accept();
        // Create a reader
        bufferedReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        // Get the client message
        while((inputLine = bufferedReader.readLine()) != null)
                    {System.out.println(inputLine);}
    serverSocket.close();
            System.out.println("close");
                    }
            }
    catch(IOException e)
    {
        System.out.println(e);
    }
}
}

クライアントもほぼ同じです。

import java.net.Socket;
import java.io.PrintWriter;
public class client
{
private static Socket socket;
private static PrintWriter printWriter;
public static void main(String[] args)
{
    try
    {
                   //change "localhost" to the ip address that the client is on, and this number to the port
        socket = new Socket("localhost",63400);
        printWriter = new PrintWriter(socket.getOutputStream(),true);
        printWriter.println("Hello Socket");
    }
    catch(Exception e)
    {
        System.out.println(e);
    }
}
}

私が間違っていなければ、printWriter は 16 ビット操作であり、遅延を減らすために、テキストを送信するだけであれば、printStream() を使用することをお勧めします。これはもう少し速いかもしれないと思います。

于 2013-05-12T03:37:08.120 に答える