我想知道我是否可以获得帮助,或者找到能够发送键盘按键并在另一台计算机上接收它们的程序。我想用它来与电脑上的朋友一起玩多人Flash播放器游戏。我知道有一些程序像“logmein”,但两个用户不能同时使用键盘。 (当我按一个键时,计算机用户不能同时按下一个键,因为它不会响应。)我只知道java,我对它很新手。我猜我是否需要写它不得不通过端口或网络服务器发送信息。我想知道你对这个项目的意见和建议,谢谢你们。
答案 0 :(得分:2)
基本上你要找的是一个聊天室计划?你有没有尝试过研究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()。我相信这可能会更快一些。