从runnable中提取整数并将其添加到LinkedList

时间:2015-04-30 12:48:58

标签: java

我已经实现了一个服务器应用程序,它使用线程允许多个节点连接。服务器在连接时接收节点信息。我想要做的是将节点套接字添加到另一个类中的LinkedList。

这里是节点管理器的代码:

import java.io.*;
import java.net.*;

public class NodeManager extends Thread{

private DatagramSocket socket = null;

public NodeManager() throws IOException {
this("ServerThread");
}

//creates server socket for cmmunication with nodes
public NodeManager(String name) throws IOException {
    socket = new DatagramSocket(3456);  
}

@Override
public void run() {
      while(true){      
        try {

            byte[] buf = new byte[1024];

            // receive request
            DatagramPacket packet = new DatagramPacket(buf, buf.length);
            socket.receive(packet);

           //Get the nodes address
            InetAddress address = packet.getAddress();
           //Get the nodes Port

           //The port int is what i would like to extract and add to a linked list in another class

            int port = packet.getPort();
           //Convert the packets data into a string
            String received = new String(packet.getData(), 0, packet.getLength());

            System.out.println(received);

            //Send message back to node
            String message = "10";
            packet = new DatagramPacket(message.getBytes(), message.getBytes().length, address, port);
            socket.send(packet);

            } catch (IOException e) {
            e.printStackTrace();
        }
    }
  }
}

2 个答案:

答案 0 :(得分:0)

其他类必须为该LinkedList提供一个getter,以便您可以获取实例并将int添加到其中。

或者它必须提供一些其他方法来向其列表中添加/删除整数。

答案 1 :(得分:0)

我建议您使用类实现std::ostringstream,而不是扩展Runnable

您必须在您的类中添加一个私有成员,并提供一个同步的getter来访问它。确保使用线程安全列表实现(例如Thread)。