Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在UDP套接字java android上发送多个数据_Java_Android_Sockets_Udp - Fatal编程技术网

在UDP套接字java android上发送多个数据

在UDP套接字java android上发送多个数据,java,android,sockets,udp,Java,Android,Sockets,Udp,我在UDP上发送多个数据时遇到问题,它会发送重复的最后一个数据 UDP_Client Client = new UDP_Client(); Client.Message = "Your message1"; Client.NachrichtSenden(); Client.Message = "Your message2"; Client.NachrichtSenden(); Client.Message = "Your messa

我在UDP上发送多个数据时遇到问题,它会发送重复的最后一个数据

 UDP_Client Client = new UDP_Client();

 Client.Message = "Your message1";
 Client.NachrichtSenden();
 Client.Message = "Your message2";
 Client.NachrichtSenden();
 Client.Message = "Your message3";
 Client.NachrichtSenden();
输出为

你的留言3

你的留言3

你的留言3

我使用这个来源

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Build;

public class UDP_Client 
{
private AsyncTask<Void, Void, Void> async_cient;
public String Message;

@SuppressLint("NewApi")
public void NachrichtSenden()
{
    async_cient = new AsyncTask<Void, Void, Void>() 
    {
        @Override
        protected Void doInBackground(Void... params)
        {   
            DatagramSocket ds = null;

            try 
            {
                ds = new DatagramSocket();
                DatagramPacket dp;                          
                dp = new DatagramPacket(Message.getBytes(), Message.length(), Main.BroadcastAddress, Main.SERVER_PORT);
                ds.setBroadcast(true);
                ds.send(dp);
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }
            finally 
            {
                if (ds != null) 
                {   
                    ds.close();
                }
            }
            return null;
        }

        protected void onPostExecute(Void result) 
        {
           super.onPostExecute(result);
        }
    };

    if (Build.VERSION.SDK_INT >= 11) async_cient.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    else async_cient.execute();
  }
}
导入java.net.DatagramPacket;
导入java.net.DatagramSocket;
导入android.annotation.SuppressLint;
导入android.os.AsyncTask;
导入android.os.Build;
公共类UDP_客户端
{
专用异步任务异步;
公共字符串消息;
@SuppressLint(“新API”)
公共无效NachrichtSenden()
{
async\u cient=新的AsyncTask()
{
@凌驾
受保护的Void doInBackground(Void…参数)
{   
DatagramSocket ds=null;
尝试
{
ds=新的DatagramSocket();
数据包dp;
dp=新的DatagramPacket(Message.getBytes()、Message.length()、Main.BroadcastAddress、Main.SERVER\u端口);
ds.路演(真实);
ds.send(dp);
} 
捕获(例外e)
{
e、 printStackTrace();
}
最后
{
如果(ds!=null)
{   
ds.close();
}
}
返回null;
}
受保护的void onPostExecute(void结果)
{
super.onPostExecute(结果);
}
};
if(Build.VERSION.SDK\u INT>=11)async\u cient.executeOnExecutor(AsyncTask.THREAD\u POOL\u EXECUTOR);
else async_cient.execute();
}
}
(表格:)

固定

 public class UDP_Client 
 {
     private AsyncTask<Void, Void, Void> async_cient;
     public String Message;

     @SuppressLint("NewApi")
     public void NachrichtSenden(final String word)
     {
         async_cient = new AsyncTask<Void, Void, Void>() 
         {
             @Override
             protected Void doInBackground(Void... params)
             {   

                 DatagramSocket ds = null;

                 try 
                 {
                     ds = new DatagramSocket();
                     DatagramPacket dp;                          
                     dp = new DatagramPacket(word.getBytes(), word.length(), InetAddress.getByName(TXIp), TXPort);
                     ds.setBroadcast(true);
                     ds.send(dp);
                 } 
                 catch (Exception e) 
                 {
                     e.printStackTrace();
                 }
                 finally 
                 {
                     if (ds != null) 
                     {   
                         ds.close();
                     }
                 }
                 return null;
             }

             protected void onPostExecute(Void result) 
             {
                super.onPostExecute(result);
             }
         };

         if (Build.VERSION.SDK_INT >= 11) async_cient.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
         else async_cient.execute();
     }
   }
   UDP_Client Client = new UDP_Client();
   Client.NachrichtSenden("Your message1");
   Client.NachrichtSenden("Your message2");
   Client.NachrichtSenden("Your message3");