Java 将键盘按键发送到另一台计算机?

Java 将键盘按键发送到另一台计算机?,java,keyboard,Java,Keyboard,我想知道我是否能在制作或寻找一个能够发送键盘按键并在另一台计算机上接收它们的程序时得到帮助。我想用它来玩多人flash播放器游戏的朋友跨越电脑。我知道有一些程序,比如“logmein”,但两个用户不能同时使用键盘。(当我按下一个键时,计算机用户不能同时按下一个键,因为它不会响应。)我只懂java,而且我对它非常熟悉。我猜如果我需要写它,我必须通过端口或网络服务器发送信息。我想知道你们对这个项目的意见和建议,谢谢大家 基本上你想要的是聊天室程序?你试过调查mIRC吗? mIRC是一个免费的互联网中

我想知道我是否能在制作或寻找一个能够发送键盘按键并在另一台计算机上接收它们的程序时得到帮助。我想用它来玩多人flash播放器游戏的朋友跨越电脑。我知道有一些程序,比如“logmein”,但两个用户不能同时使用键盘。(当我按下一个键时,计算机用户不能同时按下一个键,因为它不会响应。)我只懂java,而且我对它非常熟悉。我猜如果我需要写它,我必须通过端口或网络服务器发送信息。我想知道你们对这个项目的意见和建议,谢谢大家

基本上你想要的是聊天室程序?你试过调查mIRC吗? mIRC是一个免费的互联网中继聊天。该计划的具体要求是什么?它一定有一定的尺寸吗?你和你的朋友玩的这些flash游戏占据了你的整个电脑屏幕吗

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

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()。我相信这可能会快一点。

你不能把按下的键存储为布尔值,然后通过udp或tcp以字节形式发送它们吗?会有延迟吗?我不确定我会调查此事。这与我的想法大致相同。Java代码本身不会引入延迟……另一方面,您的互联网连接。。。。。