마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DatagramSocket으로 UDP 패킷 수신 문제

0 추천
	public void run()
	{
		try
		{
			byte buffer[] = new byte [64];
			
			Log.e( "packet", String.format("port = %d", myPort) );

			Server = new DatagramSocket( myPort );
			Server.setBroadcast(true);
			onThread = true;
			
			while ( onThread )
			{
				try
				{
					DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
					Server.receive( packet );
					
					if ( packet.getData().length > 0 )
					{
						Log.e( "packet", "received" + packet.getData().length );
		    			PacketProc( packet.getData(), 2 );
					}
										
				} catch ( Exception e ) {

					EndThread();
				}
			}
			
		} catch (Exception e) {
			
			EndThread();
		}
	}

 

이런 스레드를 하나 만들어서 UDP 패킷을 받으려고 합니다.

서버에서 보내는건 분명합니다. C로 만든 코드에서는 정상적으로 받아지거든요.

근데 폰에서 받으려고만 하면 되질 않네요.

 

Server.receive( packet ); 

 

이 부분에서 멈춰있고 아무 반응도 하지 않습니다.

제가 설정이나 뭐 누락한게 있을까요?

바야바 (3,840 포인트) 님이 2014년 1월 19일 질문

1개의 답변

0 추천
퍼미션이야 줬을테고... 네트워크 관련 작업은 안드로이드가 업데이트 되면서 무조건 별도의 쓰레드를 생성시켜서 해야합니다. 이 부분은 지켰는지 궁금하네요.
인연 (31,880 포인트) 님이 2014년 1월 19일 답변
스레드 사용했었고, 삽질하다 해결은 했습니다.
서버로 처음에 보냈던 그 소켓을 그대로 사용해야 받아지더군요.
...