Android TCP通信速度太慢

我的TCP发送器类是TCPSenderTask作为客户端,我使用TCP服务器的服务。

当我尝试发送数据时,数据传输速度太慢。 我找不到原因。

 package com.example.sampletcpclient; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.net.Socket; import java.util.ArrayList; import com.example.model.Order; import android.content.Context; import android.os.AsyncTask; import android.widget.TextView; class TCPSenderTask extends AsyncTask { Context mContext; TextView tv; BufferedReader reader; PrintWriter writer; Socket socket; ArrayList outgoingOrders; ObjectOutputStream oos; public TCPSenderTask(Context mContext, ArrayList outgoingOrders, TextView tv) { this.mContext = mContext; this.tv = tv; this.outgoingOrders = outgoingOrders; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Boolean doInBackground(Void... params) { try { socket = new Socket("192.168.2.3", 4999); oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(outgoingOrders); oos.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); if(result){ tv.setText("Successuful"); } else{ tv.setText("Unsuccessuful"); } } } 

和我的TCP侦听器服务作为TCP服务器

 package com.example.sampletcpserver; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import com.example.model.Order; import android.app.Activity; import android.app.Notification; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Binder; import android.os.IBinder; import android.support.v4.app.NotificationCompat; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; public class TCPListenerService extends Service { private final IBinder mBinder = new TCPBinder(); private int result = Activity.RESULT_CANCELED; public static final String NOTIFICATION = "com.example.sampletcpserver"; public static final String RESULT = "result"; public static final String MESSAGE = "message"; private static int FOREGROUND_ID = 1338; private String message; LocalBroadcastManager broadcaster; public static ArrayList incomingOrders; ObjectInputStream ois; public int counter = 1; @Override public int onStartCommand(Intent intent, int flags, int startId) { Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); broadcaster = LocalBroadcastManager.getInstance(this); incomingOrders = new ArrayList(); Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.service_logo); Notification notification = new NotificationCompat.Builder(this) .setContentTitle("") .setTicker("") .setContentText("Service") .setSmallIcon(R.drawable.icon) .setLargeIcon(Bitmap.createScaledBitmap(icon, 64, 64, false)) .setContentIntent(pendingIntent) .setOngoing(true) .build(); startForeground(FOREGROUND_ID, notification); Thread tcp = new Thread(new TcpServer()); tcp.start(); return Service.START_STICKY; } private void publishResults(String message, int result) { Intent intent = new Intent(NOTIFICATION); intent.putExtra(MESSAGE, message); intent.putExtra(RESULT, result); broadcaster.sendBroadcast(intent); } @Override public IBinder onBind(Intent arg0) { return mBinder; } public class TCPBinder extends Binder { TCPListenerService getService() { return TCPListenerService.this; } } class TcpServer implements Runnable { @Override public void run() { try { ServerSocket serverSock = new ServerSocket(4999); while (true) { Socket clientSocket = serverSock.accept(); Thread t = new Thread(new ClientHandler(clientSocket)); t.start(); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSocket) { try { sock = clientSocket; ois = new ObjectInputStream(clientSocket.getInputStream()); } catch (Exception ex) { ex.printStackTrace(); } } public void run() { String msg = ""; try { incomingOrders = (ArrayList) ois.readObject(); ois.close(); sock.close(); for (int i = 0; i < incomingOrders.size(); i++) { Log.e("message", incomingOrders.get(i).getTableNo() + incomingOrders.get(i).getFoodName()); } Log.e("packet", "received packet : " + counter++); // Log.e("message", msg); result = Activity.RESULT_OK; // publishResults(msg, result); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } } 

我尝试发送数据时传输速度太慢。 任何建议将不胜感激。