MonoDroid net.Sockets - PullRequest
       2

MonoDroid net.Sockets

0 голосов
/ 20 декабря 2011

Я пытаюсь создать приложение для Android, которое использует .net.sockets для подключения к серверу и отправки / получения данных. Отправка данных работает нормально, однако при получении она выдает аргумент вне диапазона ошибки. Я не совсем уверен, что является причиной этого, приложение Windows Form с тем же кодом работает нормально. Я надеюсь, что кто-нибудь может мне помочь.

это мой код:

            Android.Util.Log.Info("Starting Client", "Starting Client");
            TcpClient ClientSock = new TcpClient();
            ClientSock.Connect(ip, port);
            NetworkStream serverStream = ClientSock.GetStream();

            //sending command
            Android.Util.Log.Info("Starting Data", "Sending Data");
            byte[] outStream = System.Text.Encoding.ASCII.GetBytes("Heres Data");
            serverStream.Write(outStream, 0, outStream.Length);
            serverStream.Flush();
            Android.Util.Log.Info("Starting Data", "Receiving Data");
            //receiving data
            byte[] inStream = new byte[10025];
            serverStream.Read(inStream, 0, (int)ClientSock.ReceiveBufferSize);
            string returndata = System.Text.Encoding.ASCII.GetString(inStream);
            Android.Util.Log.Info("Return Data =", returndata);

Я надеюсь, что кто-нибудь может мне помочь с этим!

Ответы [ 2 ]

0 голосов
/ 06 июня 2012

вы можете изменить размер inStream на

byte[] inStream = new byte[ClientSock.ReceiveBufferSize];
serverStream.Read(inStream, 0, (int)ClientSock.ReceiveBufferSize);

и в классе сервера сделайте берег из того же самого

0 голосов
/ 23 декабря 2011

ClientSock.ReceiveBufferSize не имеет ничего общего с буфером, который вы передаете. Используйте inStream.Length в качестве третьего аргумента Socket.Read.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...