【发布时间】:2015-05-25 13:50:10
【问题描述】:
我创建了一个处理 Java 草图。这个草图是服务器。我想要这个程序做的就是客户端和服务器可以相互连接和编写消息(句子)。案例 1 成功了,但案例 2 没有。我已经解释了每个案例的流程以及出错/成功的地方。
案例1)在同一台计算机(Mac)上,我启动了服务器程序并在终端(Mac上的“命令提示符”)上输入telnet local host 5204,客户端(Mac)与服务器(Mac)连接。我能够在服务器和客户端之间输入句子(或字符串)并且它是成功的。因此,无论我在服务器中键入什么句子,它对客户端都是可见的,反之亦然。 注意:服务器和客户端都在同一台计算机上。
案例 2) 在 Mac 上,我启动了服务器程序。在另一台计算机上(Windows 7) 我通过命令提示符连接到服务器。连接成功。在这种情况下,字符串可以从服务器发送到客户端,并且字符串对客户端是可见的。 但是当我尝试从客户端向服务器发送字符串时,服务器只能逐个字符地接收信息,而不是整个句子/字符串。我尝试更改端口号,客户端设备,帧率,但我还是没有成功。
这是我的问题。如果我的问题更清楚或者我需要提供更多细节,请发表评论。谢谢你的回答。
下面是我的服务器代码:
import processing.net.*;
Server myServer;
//Strings from server and client
String typing = "";
String c = "";
void setup() {
size(400, 400);
//creating server on port 5204
myServer = new Server(this, 5204);
}
void draw() {
background(255);
//displaying server's text and client's text
fill(0);
text(typing, 100, 100);
text("Client: " + c, 100, 150);
Client client = myServer.available();
if(client != null) {
//reading input from client
c = client.readString();
c.trim();
}
}
void keyPressed() {
//Server can type sentences to client
if(key == '\n') {
myServer.write(typing + '\n');
typing = "";
}else{
typing = typing + key;
}
}
【问题讨论】:
标签: input client server processing