为什么网络套接字连接和发送/接收数据需要很长时间无线?

时间:2015-07-01 20:02:23

标签: java c# android windows sockets

我在Android设备(带有以太网和无线端口)和Windows中的服务器应用程序中创建了一个应用程序客户端。

通过设备之间的套接字编程进行数据传输,当我在PC中的模拟器中测试或通过电缆在以太网中运行时,它可以正常工作,但是当我通过无线连接(通过接入点)连接服务器和客户端时发送或接收的数据延迟 。这种延迟可能需要60秒!

我不知道为什么会出现这个问题!

这是我在android中的发送例程:

mypage.jsf

我在c#中的Windows服务器代码:

 Server_Port = mDbHelper.GetPortNumber();
    //mDbHelper.close();

    final String Concatinate_values = firstByte_KindType + Spliter + secoundByte_KindofMove +
            Spliter + ValueOfMove + Spliter + valueOfsetting + Spliter + MaxOrMinValue;


    //Sent Routin
    ////‌Connect To server

    Thread thread = null;

    thread = new Thread(new Runnable() {

        @Override
        public void run() {

            DataOutputStream outputStream = null;
            BufferedReader inputStream = null;
            Socket socket;
            socket = new Socket();

            try {

                socket.connect(new InetSocketAddress(Server_IP, Server_Port), 10);

            }
            catch (IOException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
                Thread.currentThread().interrupt();
            }

            ////Make Read Line
            try {
                outputStream = new DataOutputStream(socket.getOutputStream());

                inputStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            }
            catch (IOException e1) {
                //Finished Socket

                ShutDown(socket);
            }

            if (outputStream == null) {
                //
                ShutDown(socket);
                Thread.currentThread().interrupt();
                return;
            }

            //Write Message
            try {
                String message = Concatinate_values + "\n";

                outputStream.write(message.getBytes());
                outputStream.flush();

                ShutDown(socket);
                Thread.currentThread().interrupt();
                return;

            }
            catch (IOException e) {
                e.printStackTrace();
                Thread.currentThread().interrupt();

            }

            try {
                if (socket != null) {
                    socket.close();

                }
            }
            catch (IOException e) {
                e.printStackTrace();
                ShutDown(socket);
                Thread.currentThread().interrupt();
                return;
            }
            Thread.currentThread().interrupt();
        }
    });

    thread.start();

0 个答案:

没有答案