void interpret (Vector v)
	{	if (v.size()<1) return; // empty datagram
		String arg=((String)v.elementAt(0));
		if (arg.equals("open")) 
		// a server opened, send him an openinfo datagram
		{	try 
			{	open(
					(String)v.elementAt(1),
					(String)v.elementAt(2),
					Integer.parseInt((String)v.elementAt(3)),
					Integer.parseInt((String)v.elementAt(4)));
				openinfo(
					(String)v.elementAt(2),
					Integer.parseInt((String)v.elementAt(3)));
			}
			catch (Exception e) {}
		}
		else if (arg.equals("spreadopen"))
		// a server notifies about opening of another server
		{	try 
			{	open(
					(String)v.elementAt(1),
					(String)v.elementAt(2),
					Integer.parseInt((String)v.elementAt(3)),
					Integer.parseInt((String)v.elementAt(4)));
			}
			catch (Exception e) {}
		}
		else if (arg.equals("openinfo"))
		// a server sent me his list of open servers
		{	openinfo(v);
		}
		else if (arg.equals("close") ||
			arg.equals("spreadclose"))
		// a server closed or notifies about the closing of another server
		{	try 
			{	close((String)v.elementAt(1),(String)v.elementAt(2));
			}
			catch (Exception e) {}
		}
	}