你好我需要编写一个非常简单的应用程序,通过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连接(我只需要在那里发送命令)。