Broadcasting, encapsulated information forwarding and userlist management methods - Broadcast

xiaoxiao2021-03-06  44

Import java.io.ioException; import java.io.PrintStream; import java.util.enumeration; import java.util.vector; / * * * @Author zhang * * broadcast class, encapsulated information forwarding and userList management method * / public class Broadcast {private Vector userList = null; private final int MAX_SIZE = 200; private final int MIN_LEN = 20; private static Broadcast broadcast = null; public Broadcast () {userList = new Vector (MIN_LEN);} public static Broadcast getInstence () {If (Broadcast == null) Return New Broadcast (); Return Broadcast;

public synchronized boolean addUser (Angent angent) {if (this.userList.size () == 200) return false; for (Enumeration enumeration = userList.elements (); enumeration.hasMoreElements ();) if (((Angent) enumeration .NEXTELEMENT ()). getUserid (). Compareto (angent.getuserid ()) == 0) Return false; // If there is the same username // First login: userlist.addelement (angent); return true; }

Public synchronized void Broadcast (String s) {sendother (s, null);}

Public synchronized int getUserNumber () {return userlist.size ();

Public synchronized void transoveuser (angent angent) {// Remove UserList.RemoveElement (angent);

public synchronized void sendTo (String s, String toUser) {for (Enumeration enumeration = userList.elements (); enumeration.hasMoreElements ();) {// angent target agent Angent angent = (Angent) enumeration.nextElement (); if (angent.getuserid (). Equals (touser) {angent.getut (). Println (s); break;}}

}

public synchronized void sendOther (String s, Angent angent) {for (Enumeration enumeration = userList.elements (); enumeration.hasMoreElements ();) {Angent angent1 = (Angent) enumeration.nextElement ();! if ((angent.getUserId (). ENGENT.GETUSERID ()))))))) {// guarantees that you do not send to you, save bandwidth angent.getout (). Println (s);}}}}

转载请注明原文地址:https://www.9cbs.com/read-79362.html

New Post(0)