2011-04-06 59 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