小弟做了一个关于multicastSocket的例子。通信是实现了,但是结果很让我纠结:客户端能接收到服务端的信息,服务端却收不到客户端的信息,现在贴出代码,请高手帮我指点一下到底是哪里出错了
服务端:public class MultiServerSocketActivity extends Activity {
    /** Called when the activity is first created. */
private static DatagramPacket dataIn;//接收到的信息
private static DatagramPacket dataOut;
private static MulticastSocket mSocket;//多播信息类
private static String mIp = "230.0.1.1";//多播地址
private static final int RECEIVE_LENGTH = 1024;//接收信息长度
private static final int PORT = 8080;//接收信息端口号

private Button sendBtn;
InetAddress inet;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        sendBtn = (Button)findViewById(R.id.send);
        sendBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
send("socket");
}
});
        
System.out.println("start");
new Thread(){public void run() {
byte [] buff = new byte[RECEIVE_LENGTH];

try {
inet = InetAddress.getByName(mIp);
if(!inet.isMulticastAddress()){
throw new Exception("请输入一个多播地址");
}
mSocket = new MulticastSocket(PORT);
mSocket.joinGroup(inet);
dataIn = new DatagramPacket(buff, buff.length);
String content = null;
while(true){
mSocket.receive(dataIn);
content = new String(dataIn.getData()).trim();
System.out.println("message server:=============="+content);
}
//mSocket.leaveGroup(inet);//MulticastSocket脱离一个组
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
mSocket.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}

};}.start();
// TODO Auto-generated method stub

    }
  
    
    public void send(String sendStr){
     byte send[] = sendStr.getBytes();
     dataOut = new DatagramPacket(send, send.length,inet,PORT);
     try {
mSocket.send(dataOut);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    
    }
    
}客户端:
public class MulitCastSocketActivity extends Activity {
    /** Called when the activity is first created. */
private static DatagramPacket dataIn;//接收到的信息
private static DatagramPacket dataOut;
private static MulticastSocket mSocket;//多播信息类
private static String mIp = "230.0.1.1";//多播地址
private static final int RECEIVE_LENGTH = 1024;//接收信息长度
private static final int PORT = 8080;//接收信息端口号
InetAddress inet;
private Button sendBtn;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        System.out.println("start");
        sendBtn = (Button)findViewById(R.id.send);
        sendBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
send("client");
}
});
        new Thread(){public void run() {
         byte [] buff = new byte[RECEIVE_LENGTH];
    
     try {
      inet = InetAddress.getByName(mIp);
     if(!inet.isMulticastAddress()){
     throw new Exception("请输入一个多播地址");
     }
     mSocket = new MulticastSocket(PORT);
     mSocket.joinGroup(inet);
     dataIn = new DatagramPacket(buff, buff.length);
     while(true){
     mSocket.receive(dataIn);
     System.out.println("message client:"+dataIn.getAddress()
     +":"+dataIn.getData().toString());
     }
    
     //mSocket.leaveGroup(inet);//MulticastSocket脱离一个组
     } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
        };}.start();
// TODO Auto-generated method stub

    }
    public void send(String sendStr){
     byte send[] = sendStr.getBytes();
     dataOut = new DatagramPacket(send, send.length,inet,PORT);
     try {
mSocket.send(dataOut);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    
    }
   
}