80,359
社区成员
发帖
与我相关
我的任务
分享
button_send.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
try{
//scan = new Scanner(Muticast.this.edittext.getText().toString());
str = edittext.getText().toString();
//byte[] buff = scan.next().getBytes();
byte[] buff = str.getBytes();
outPacket.setData(buff);
socket.send(outPacket);
edittext.setText("");
}catch (Exception e){
e.printStackTrace();
}
}
});
}
package xiaobenben.muticast;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.util.Scanner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Muticast extends Activity {
/** Called when the activity is first created. */
private Button button_send;
private TextView textview;
private Button button_begin;
private EditText edittext;
private static final String BROADCAST_IP = "224.0.0.1";
public static final int BROADCAST_PORT = 4545;
private static final int DATA_LEN = 4096;
private MulticastSocket socket ;
private InetAddress broadcastAddress = null;
private Scanner scan = null;
byte[] inBuff = new byte[DATA_LEN];
private DatagramPacket inPacket = new DatagramPacket(inBuff , inBuff.length);
private DatagramPacket outPacket = null;
private String str;
public void ini(){
try{
socket = new MulticastSocket(BROADCAST_PORT);
System.out.println("1111111111111111111");
broadcastAddress = InetAddress.getByName(BROADCAST_IP);
socket.joinGroup(broadcastAddress);
socket.setLoopbackMode(false);
outPacket = new DatagramPacket(new byte[0] , 0 ,broadcastAddress , BROADCAST_PORT);
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button_send = (Button)findViewById(R.id.button_ok);
button_begin = (Button)findViewById(R.id.button_begin);
textview = (TextView)findViewById(R.id.textview_text);
edittext = (EditText)findViewById(R.id.editview);
textview.setText("hi,xiaobenben!");
button_begin.setText("开始");
ini();
button_begin.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
try {
System.out.println("init() start");
button_begin.setText("结束");
Runnable ping = new Multicast();
new Thread(ping).start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
button_send.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
try{
//scan = new Scanner(Muticast.this.edittext.getText().toString());
str = edittext.getText().toString();
//byte[] buff = scan.next().getBytes();
byte[] buff = str.getBytes();
outPacket.setData(buff);
socket.send(outPacket);
edittext.setText("");
}catch (Exception e){
e.printStackTrace();
}
}
});
}
class Multicast implements Runnable{ //内部类
Multicast(){
}
public void run(){
try
{
while(true)
{
socket.receive(inPacket);
System.out.println(new String(inBuff , 0 , inPacket.getLength()));
str = new String(inBuff , 0 , inPacket.getLength());
textview.setText("聊天信息:" + str);
//textview.setText("聊天信息:" + new String(inBuff , 0 , inPacket.getLength()));
//System.out.println(inPacket.getAddress().getHostAddress());
}
}
catch (IOException ex)
{
ex.printStackTrace();
try
{
if (socket != null)
{
socket.leaveGroup(broadcastAddress);
socket.close();
}
System.exit(1);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}