- Home /
 
Are there alternate methods for sending byte data from an iPad client to a PC server?
Hello everyone, this is an issue I am having to figure out. When I try to use an RPC call to send a byte array to a PC server from an iOS device(Macbook, ipad, etc.) the ios version will crash. I am using Unity 4.6.5.
here are the functions involved in the process.
 IEnumerator TakePhoto()
     {
         yield return new WaitForEndOfFrame();
         int resWidth = (int)pictureCamera.pixelWidth;
         int resHeight = (int)pictureCamera.pixelHeight;
 
         Texture2D screenShot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false);
         pictureCamera.Render();
 
         screenShot.ReadPixels(new Rect(pictureCamera.pixelRect), 0, 0);
 
         byte[] bytes = screenShot.EncodeToPNG();
         acceptedPicture = bytes;
         nView.RPC("RecievePhoto", RPCMode.Server, bytes);
         System.IO.File.WriteAllBytes(FilePath, bytes);
     }
 
               THis is just taking the picture and storing the bytes in a different byte array to be used when the RPC is called.
 [RPC]
 void RecievePhoto(byte[] bytes)
 {
     if (bytes.Length < 1)
     {
         Debug.Log("Recieved Bad byte count");
         return;
     }
 
     string filePath = Application.dataPath + "/test.png";
     System.IO.File.WriteAllBytes(FilePath, bytes); 
 }
 
               That is the actual RPC function that get's called.
I have done enough testing to know that the RPC call is the issue, not the function itself. However it works fine on a PC client. Does anyone have a solution so that this will work or an alternate method of doing it? I am aware of WWWForms and am looking into implementing those as a back up.
Answer by Noel9386 · May 26, 2015 at 07:16 PM
After some troubleshooting and asking around the internet It seems this issue started popping up in 4.6.3. Reverting back to 4.6.0 solved the issue.
Your answer