Server 正在处理中设置数据流服务器

Server 正在处理中设置数据流服务器,server,udp,client,processing,ports,Server,Udp,Client,Processing,Ports,我想在处理过程中设置一个datastreaming服务器,以便客户端向服务器发送一个字符串,服务器进行应答。例如,客户机-服务器“Cupcake”,然后服务器-客户机“Cupcakce听起来很有趣”,因此服务器回答字符串。我用UDP库尝试了这一点,并打开了服务器上的端口。但是当服务器必须应答Clinet时,它就不工作了,因为我无法打开客户端的端口。有什么解决方案吗?听起来你需要双向沟通 使用UDP您需要两个既是UDP服务器又是客户端的草图。 e、 g 您还可以使用TCP套接字。 作为服务器,您可

我想在处理过程中设置一个datastreaming服务器,以便客户端向服务器发送一个字符串,服务器进行应答。例如,客户机-服务器“Cupcake”,然后服务器-客户机“Cupcakce听起来很有趣”,因此服务器回答字符串。我用UDP库尝试了这一点,并打开了服务器上的端口。但是当服务器必须应答Clinet时,它就不工作了,因为我无法打开客户端的端口。有什么解决方案吗?

听起来你需要双向沟通

使用UDP您需要两个既是UDP服务器又是客户端的草图。 e、 g

您还可以使用TCP套接字。 作为服务器,您可以使用示例>库>网络>聊天服务器 我很惊讶没有ChatClient示例,但您可以通过以下方式逃脱:

import javax.swing.*;
import processing.net.*;

int port = 10002;

Client myClient;

void setup()
{
  size(400, 400);
  textFont(createFont("SanSerif", 16));
  myClient = new Client(this, "localhost", port); // Starts a client on port 10002
  background(0);
}

void draw()
{
  background(0);
  text("client - press ENTER to type\nconnected:"+myClient.active(), 15, 45);
}

void keyReleased() {
  if (keyCode == ENTER) {
    String message = JOptionPane.showInputDialog(null, "message: ", "TCP Client messaging", JOptionPane.QUESTION_MESSAGE);
    println(message);
    if (myClient.active() && message != null) {
      myClient.write(message);
    }
  }
}
注意:必须先运行服务器,然后才能连接客户端

请务必检查UDP和TCP协议之间的差异,以确定在您的情况下使用哪一种协议最有意义(特别是如果您希望使用更多客户端)


另一个值得研究的选项是WebSocket。这将允许您有一个正在处理的WebSocket服务器,客户端可以是另一个处理草图,也可以是任何(例如,最现代的)

为什么不使用
导入处理.net.
?这是processing for Networking提供的一个库,您也可以发布您尝试过的内容吗?我还想将我的程序导出为android应用程序。processing.net不适用于android,因此我必须使用UDP或OSCP5。那么您可以发布您的代码吗?
import javax.swing.*;
import processing.net.*;

int port = 10002;

Client myClient;

void setup()
{
  size(400, 400);
  textFont(createFont("SanSerif", 16));
  myClient = new Client(this, "localhost", port); // Starts a client on port 10002
  background(0);
}

void draw()
{
  background(0);
  text("client - press ENTER to type\nconnected:"+myClient.active(), 15, 45);
}

void keyReleased() {
  if (keyCode == ENTER) {
    String message = JOptionPane.showInputDialog(null, "message: ", "TCP Client messaging", JOptionPane.QUESTION_MESSAGE);
    println(message);
    if (myClient.active() && message != null) {
      myClient.write(message);
    }
  }
}