【发布时间】:2013-12-21 20:09:28
【问题描述】:
我有一个处理代码,它通过套接字读取和写入 Python 应用程序。我希望它在 keyPressed 上写入并在 keyReleased 操作上读取。
问题是,没有对这两个事件执行任何操作。它拒绝在关键操作上连接到 Socket。
这里是java代码:
import java.io.*;
import java.net.*;
String result;
String status;
String reply;
void setup(){
size(1000, 450);
textFont(createFont("Arial", 20));
result = "You Said!";
reply = "He Replied: ";
status = "...";
}
void draw(){
background(0);
text(result, 0, 50);
text(reply, 0, 150);
text(status, 0, 250);
}
public void keyPressed() {
status = "PRESSED";
try {
Socket clientSocket = new Socket("localhost", 8089);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes(result + '\n');
outToServer.flush();
}
catch(Exception e) {
println(e);
}
}
public void keyReleased () {
status = "RELEASED";
try {
Socket clientSocket = new Socket("localhost", 8089);
BufferedReader inFromServer = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
reply = inFromServer.readLine();
}
catch(Exception e) {
println(e);
}
}
套接字连接根本没有发生。状态字符串没有改变。我有什么地方出错了吗?从逻辑上讲,这似乎是正确的。
【问题讨论】:
-
代码似乎不是有效的 Java。接下来,如果您要发送 char 数据,那么我会使用 PrintWriter 或 PrintStream。另外,我对处理不熟悉,但是许多库会要求您将后台线程用于后台进程。
-
@HovercraftFullOfEels 这在技术上不是 Java,它是处理。当我把它们放在一起时,代码运行良好,这个 keyPressed 和 keyReleased 的东西正在制造问题。否则效果很好。
-
啊,那你应该丢掉java标签了。
-
代码本质上是Java,因为我是从那里移植过来的。
-
按键是怎么调用的?
标签: java python sockets networking processing