0

我想知道是否可以帮助我制作或找到一个能够发送键盘按键并在另一台计算机上接收它们的程序。我想用它和电脑上的朋友一起玩多人 Flash 游戏。我知道有一些程序,比如“logmein”,但是两个用户不能同时使用键盘。(当我按下一个键时,计算机用户不能同时按下一个键,因为它不会响应。)我只知道 java,而且我很新手。我猜我是否需要编写它,我必须通过端口或网络服务器发送信息。我想知道您对这个程序的意见和建议,谢谢大家。

4

1 回答 1

2

基本上你正在寻找的是一个聊天室程序?您是否尝试过研究 mIRC?mIRC 是一个免费的互联网中继聊天。该计划的具体要求是什么?有一定的尺寸吗?您和您的朋友正在玩的这些 Flash 游戏是否占据了您的整个计算机屏幕?

构建程序需要一个网络服务器(任何可以访问互联网的计算机都可以),并且您必须打开网络上的端口以允许流量通过。

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 回答