안녕하세요. 안드로이드 UDP 소켓통신 프로그래밍 공부를 하고 있습니다.

안드로이드에서 TCP 소켓을 관리하는 Socket 클래스를 통해 간단한 서버/클라이어트 프로그램을 만들었습니다.

(당연 메니페스트 파일에 INTERNET User-permission을 추가하였습니다.)

이 Socket 클래스 중 setTrafficClass(int value) 메쏘드가 존재합니다. API 설명으로는 소켓을 통해 전송하는 IP 헤더의 TOS 필드값을

설정할 수 있는 메쏘드라고 나와있습니다.

하지만, 테스트를 위해 간단히 아래와 같이 소켓 생성 후, 바로 적용을 하고 Wireshark를 통해 패킷을 캡춰하고

전송한 IP 헤더를 보면 TOS 필드값이 그냥 0x00 으로 의도한대로 적용이 되지 않습니다.

private class TCPclient implements Runnable{
 private static final String serverIP = "xxx.xxx.xxx.xxx";
 private static final int serverPort = 7777;
 private String msg;
 
 public TCPclient(String _msg){
  this.msg = _msg;
 }
 
 @Override
 public void run(){
  try{
   InetAddress serverAddr = InetAddress.getByName(serverIP);
   
   Log.d("TCP", "C: Connecting...");
   
   Socket socket = new Socket(serverAddr, serverPort);  
   socket.setTrafficClass(5);       
        
   try {
         Log.d("TCP", "C: Sending: '" + msg + "'");
         PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
         
         out.println(msg);
         Log.d("TCP", "C: Sent.");
            Log.d("TCP", "C: Done.");
            
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            return_msg = in.readLine();
            
            Log.d("TCP", "C: Server send to me this message -->" + return_msg);
           } catch(Exception e) {
             Log.d("TCP", "C: Error1", e);
         } finally {
          socket.close();
         }
         } catch (Exception e) {
           Log.e("TCP", "C: Error2", e);
         }
     }
     
     }
   }



제가 메쏘드를 잘못 사용한 것인지, 아니면 안드로이드 API에서 공개만 되고 기능 적용이 되지 않는 것인지 궁금합니다.

고수님의 답변을 기다리겠습니다. 감사합니다.