我有一種情況,像Client1向client2發送數據,並從那裏將數據發送到Server.Now從服務器將數據發送到其他多個客戶端。如何知道客戶端是否斷開連接或不在服務器/客戶端?
因此,現在當客戶端1連接到客戶端2,並在發送一些 數據後,如果客戶端1斷開連接如何知道客戶端1在客戶端2中斷開連接 ?
我的客戶端1的代碼片段是:
InetAddress address = InetAddress.getByName(ipAddress);
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(address);//join a Multicast group and send the group salutations
byte[] data;
System.out.print("Enter data: ");
String str = (br.readLine());
DatagramPacket packet;
//send the packet
data = new byte[1024];
data = str.getBytes();
packet = new DatagramPacket(data,str.length(),address,port);
socket.send(packet);
我的客戶端2的代碼片段是:現在
InetAddress address = InetAddress.getByName(ipAddress);
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data,data.length);
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(address);//join a Multicast group and send the group salutations
// receive the packets
socket.receive(packet);
str = new String(packet.getData(),0,packet.getLength());
System.out.println(ipname+" with portnumber "+port + " sent : "+str);
,如果客戶端1被連接到客戶端2和一段時間後,它斷開如何知道客戶端1得到在client2中斷開連接?
我已經使用isConnected(), isbound(), isClosed()
和isReachable(int timeout)
方法。但他們都沒有幫助我。
你的問題沒有意義。沒有人連接到任何東西。你正在使用UDP。這是一個無連接協議。 'isConnected()'和朋友不會告訴你有關連接狀態的任何信息,只有你的套接字。不要對沒有引用的文本使用引號格式。 – EJP