不同类别之间的函数调用

我有三个独立的类,分别是login.java,LiveMonitoring.java和HandleMultipleClients.java。以下是所有各个类的代码不同类别之间的函数调用

Login.java

try 

{

serverSock = new ServerSocket(2101);

while (true)

{

sock = serverSock.accept();

HandleMultipleClients hmc=new HandleMultipleClients();

hmc.Connect(sock);

}

HandleMultipleClients.java

public class HandleMultipleClients 

{

Map<Integer, java.net.Socket> clients = new HashMap<Integer, java.net.Socket>();

Socket soc;

ServerSocket serverSock;

DataOutputStream dos;

DataInputStream dis;

public HandleMultipleClients()

{

}

public void Connect(Socket sock)

{

soc=sock;

clients.put(soc.getPort(), soc);

}

public void messagetospecificclients(String ipaddress,String choice) throws IOException, InterruptedException

{

System.out.print(ipaddress+"\n"+choice);

for (Iterator<Integer> iter = clients.keySet().iterator(); iter.hasNext();)

{

System.out.print("ok1");

int key = iter.next();

java.net.Socket client = clients.get(key);

InetAddress zee = client.getInetAddress();

String s = zee.getHostAddress();

System.out.print(s);

if (zee.getHostAddress().equals(ipaddress))

{

System.out.print("ok2");

dos =new DataOutputStream(client.getOutputStream());

dos.writeUTF(choice);

}

LiveMonitoring.java

HandleMultipleClients hmc=new HandleMultipleClients(); 

try

{

hmc.messagetospecificclients("192.168.1.102","apps");

}

现在的问题是,当我打电话HMC .messagetospecificclients( “192.168.1.102”, “应用程序”);它转到HandleMultipleClients类,只是打印IP地址和应用程序,但它不通过for循环。请告诉我我做错了什么。

回答:

正在创建的对象的实例,在这里增加一个“客户”来了:

HandleMultipleClients hmc=new HandleMultipleClients(); 

hmc.Connect(sock);

但你永远不会调用messagetospecificclients()在该实例。

然后创建另一个实例并调用这里方法:

HandleMultipleClients hmc=new HandleMultipleClients(); 

try

{

hmc.messagetospecificclients("192.168.1.102","apps");

}

但你从来没有所谓的Connect()实例客户端添加到它。 (作为一个比喻...想象一下,你有两辆相同的汽车,同样的车型,同一型号,从同一条生产线上出来,你把汽油放在其中一辆汽车上,而你试图驾驶。其他人,但你不能,因为它没有气的话)的情况下

呼叫messagetospecificclients()其中有已设置的值:

HandleMultipleClients hmc=new HandleMultipleClients(); 

hmc.Connect(sock);

try

{

hmc.messagetospecificclients("192.168.1.102","apps");

}

以上是 不同类别之间的函数调用 的全部内容, 来源链接: utcz.com/qa/264089.html

回到顶部