안녕하세요제가 udp 통신인데 1대 다 형식으로 구현하려 합니다
1:1은 문제가 없구요
1:1인 상태에서 클라가 서버에 하나 더 붙으면 서버에 수신 쓰레드안에 있는 receive 가 블럭이 되더군요
안붙으면 1:1 통신 잘됩니다
혹시 해결해보신분있으면 답변 부탁드리겠습니다
아래는 제가 구현한 부분입니다
onCreate
{
...
try {
socket=new MulticastSocket(8080);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
...
}
public class RecvData extends Thread
{
@Override
public void run()
{
int recv_port;
//TODO Auto-generated method stub
//ma.notice.setText("Server start");
StrictMode.enableDefaults();
try
{
byte[] buf = new byte[17];
//while(true)
//{
byte[] buffer = new byte[1000];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
recv_port=packet.getPort();
Message message=handler.obtainMessage();
Bundle bundle = new Bundle();
String udp_data = new String(packet.getData());
//bundle.putString("udp_recv_data", udp_data);
clientAddr = packet.getAddress();
bundle.putString("udp_recv_data", clientAddr.toString());
message.setData(bundle);
handler.sendMessage(message);
String answer="029003";
buf = answer.getBytes();
packet = new DatagramPacket(buf, buf.length, packet.getAddress(), recv_port);
socket.send(packet);
//}
//socket.close();
}
catch (Exception e)
{
Log.e("UDP", "S RecvThread: Error", e);
//Data_Screen.setText(e.getMessage());
}
udp_start=0;
}
}