简单的UDP链接

时间:2017-11-17 12:31:39

标签: java android

你好我需要编写一个非常简单的应用程序,通过UDP链接发送和检索数据(在 Android OS API级别> 18 ):

这是我在一段时间前用于连接TCP / IP(并做同样的事情)的应用程序中使用的一段代码:

class LinkReader implements Runnable
{
   private final int mPort;
   private final String mAddress;
   private final Socket mLinkSocket;

   public LinkReader(String address, int port, Socket link_socket)
   {
       mLinkSocket = link_socket;
       mPort = port;
       mAddress = address;
   }

   @Override
   public void run()
   {
       try {
           BufferedReader input = new BufferedReader(
                   new InputStreamReader(
                           mLinkSocket.getInputStream()
                   )
           );

           while (true)
           {
               Thread.sleep(100);
           }
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }
   }
}

class LinkThread implements Runnable {
   private final int mPort;
   private final String mAddress;
   private Socket mLinkSocket;

   public LinkThread(String address, int port, Socket socket)
   {
       mLinkSocket = socket;
       mPort = port;
       mAddress = address;
   }

   @Override
   public void run()
   {
       try
       {
           mLinkSocket = new java.net.Socket(
                   InetAddress.getByName(mAddress),
                   mPort
           );

           new Thread(new LinkReader(mAddress,mPort,mLinkSocket)).start();
       }
       catch (UnknownHostException e) {
           e.printStackTrace();
       }
       catch (IOException e)
       {
           e.printStackTrace();
       }
   }
}

private void sendCommand(String cmd, Socket socket)
{
   try
   {
       PrintWriter _out = new PrintWriter(
               new BufferedWriter(
                       new OutputStreamWriter(socket.getOutputStream()
                       )
               ),
               false
       );
       _out.print(cmd);
       _out.flush();
   }
   catch (UnknownHostException e)
   {
       e.printStackTrace();
   }
   catch (IOException e)
   {
       e.printStackTrace();
   }
   catch (Exception e)
   {
       e.printStackTrace();
   }
}

我还没能在Android操作系统上找到关于UDP连接的例子,我之所以要重用这段代码主要是因为它工作得很好(但是我必须管理我没有非常深刻的知识Android并没有我对这段代码的表现期望很高。)

除了它在我过去的应用程序中工作之外,我的问题是它是正确的现在,在代码结构和老化方面?

如何修改此项以建立UDP连接?

BTW到目前为止,我并不需要真正的R / W连接(我只需要在那里发送命令)。

0 个答案:

没有答案