2011-04-06 57 views
0

我在处理中使用oscP5库。我已经浏览了javadoc中的oscP5,并且浏览了源代码,但我无法弄清楚。处理oscP5库

当我得到这样的调试信息: ###新客户@ [email protected]

什么是价值代表什么?我知道它是而不是客户端正在使用的端口。它是客户的唯一ID吗?它是我可以在TcpClient类中访问的变量吗?

谢谢。

回答

1

它是内存中的对象(TcpClient)地址。您在 的src/netP5/AbstractTcpServer.java

TcpClient t = new TcpClient(this, _myServerSocket.accept(), 
          _myTcpPacketListener, _myPort, _myMode); 
if (NetP5.DEBUG) { 
    System.out.println("### new Client @ " + t); 
} 

这意味着找到源代码,您的号码是的TcpClient的字符串表示。由于没有任何东西被实现来返回它 - 它的默认行为:对象地址。您可以访问此TcpClient对象及其成员,如下面的示例所示。我假设这里是简单的,我们看看客户列表中的第一个对象。

if (oscP5tcpServer.tcpServer().getClients().length>0) { 
    TcpClient tcpClient = (TcpClient)oscP5tcpServer.tcpServer().getClient(0); 
    print (tcpClient);    // address - same as your printed output 
    print (tcpClient.netAddress()); // string with "ip:port" 
    print (tcpClient.socket());  // Socket object 
    } 

请注意,大部分有趣的信息都包含在基础对象AbstractTcpClient中(如示例所示)。

+0

我已经看过TcpClient.java,并且找不到任何数字来自哪里。我将如何访问进程的ID变量? – 2011-04-06 17:57:45

+0

好吧,我已经深入了解。它不是线程ID,而是对象(TcpClient)地址。您可以获取有关TcpClient的信息。我会相应地改变我的答案。 – razong 2011-04-07 02:04:27