Problema com socket unicast e multicast

Oi, estou implementando um chat cliente / cliente usando sockets, só que o código que achei na internet que se parece com o que eu preciso utiliza multicast, e eu preciso usar unicast. Não estou conseguindo mudar de multicast para unicast, gostaria muito da ajuda de vocês. Agradeço desde já.

package org.segurança; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; class Receiver implements Runnable { Thread activity = new Thread(this); MulticastSocket so; JTextArea txt; Receiver(MulticastSocket sock, JTextArea txtAr) { so = sock; txt = txtAr; activity.start(); } public void run() { byte[] data = new byte[1024]; while(true) try { DatagramPacket packet = new DatagramPacket(data,data.length); so.receive(packet); String mess = new String(data,0,packet.getLength()); txt.append(mess+ "\n"); } catch(IOException e) { break; } } }

[code]package org.segurança;
import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.net.
;
import java.io.*;
public class JChat extends JFrame implements ActionListener
{
String name;
InetAddress iadr;
int port;
MulticastSocket so;
JTextArea txt = new JTextArea();
JScrollPane sp = new JScrollPane(txt);
JTextField write = new JTextField();
JButton quit = new JButton(“Go Offline”);
public JChat(String username, String groupAdr, int portNr) throws IOException
{
name = username;
iadr = InetAddress.getByName(groupAdr);
port = portNr;

	so = new MulticastSocket(port);
	so.joinGroup(iadr);
	new Receiver(so,txt);
	sendMess("Online");
	setTitle("Chatting with "+ name);
	txt.setEditable(true);
	add(quit,BorderLayout.NORTH);
	add(sp,BorderLayout.CENTER);
	add(write,BorderLayout.SOUTH);
	quit.addActionListener(this);
	write.addActionListener(this);
	setSize(400,250);
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
}
private void sendMess(String string) 
{
	// TODO Auto-generated method stub
	
}
public void sendMess1(String s) 
{
	byte[] data = (name + ": " + s).getBytes();
	DatagramPacket packet = new DatagramPacket(data,data.length,iadr,port);
	try 
	{
		so.send(packet);
	}
	catch(IOException ie)
	{
		Toolkit.getDefaultToolkit().beep();
		JOptionPane.showMessageDialog(null, "Data overflow !");
	}
}
public void actionPerformed(ActionEvent e) 
{
	if(e.getSource()==write) 
	{
		sendMess(write.getText());
		write.setText("");
	}
	else if(e.getSource()==quit)
	{
		sendMess("Offline");
		try 
		{
			so.leaveGroup(iadr);
		}
		catch(IOException ie) 
		{
			Toolkit.getDefaultToolkit().beep();
			JOptionPane.showMessageDialog(null, "Data overflow, connection error !");
		}
		so.close();
		dispose();
		System.exit(0);
	}
}
public static void main(String[] arg) throws IOException 
{
	String in = JOptionPane.showInputDialog(null,"What's your name?");
	if(arg.length>0) 
		in = arg[0];
	new JChat(in,"238.4.68.211",9876);
}

}
[/code]

e quando eu coloco o endereço de alguém para que eu possa conversar no chat na linha new JChat(in, “”, 9876); resulta no seguinte erro:

[quote]Exception in thread “main” java.net.SocketException: Not a multicast address
at java.net.MulticastSocket.joinGroup(Unknown Source)
at org.segurança.JChat.(JChat.java:24)
at org.segurança.JChat.main(JChat.java:86)
[/quote]