Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
C#到Android聊天客户端_C#_Java_Android_Sockets_Xamarin - Fatal编程技术网

C#到Android聊天客户端

C#到Android聊天客户端,c#,java,android,sockets,xamarin,C#,Java,Android,Sockets,Xamarin,我使用C#创建了一个局域网聊天信息应用程序,它将运行该程序的所有客户端连接到我计算机上的服务器 我现在正试图通过Xamarin Studio将此应用程序转换为android设备 测试时,设备会正确连接到服务器,因为它可以发送一条消息(表示设备已登录),然后将该消息广播到其他客户端 但是,一旦应用程序发送此消息,程序就会立即关闭 在桌面版聊天客户端中,我使用以下代码(在另一个线程上运行): 当显示行“Final test”(最终测试)时,第一次调用它时,此功能即起作用。但是,在此之后,当该方法再次

我使用C#创建了一个局域网聊天信息应用程序,它将运行该程序的所有客户端连接到我计算机上的服务器

我现在正试图通过Xamarin Studio将此应用程序转换为android设备

测试时,设备会正确连接到服务器,因为它可以发送一条消息(表示设备已登录),然后将该消息广播到其他客户端

但是,一旦应用程序发送此消息,程序就会立即关闭

在桌面版聊天客户端中,我使用以下代码(在另一个线程上运行):

当显示行“Final test”(最终测试)时,第一次调用它时,此功能即起作用。但是,在此之后,当该方法再次进入此阶段(因为它处于一个永无止境的循环中)时,我会收到一条错误消息,上面说:

“[dalvikvm heap]将堆(frag大小写)增长到13.455MB,用于4194308字节分配”

“[dalvikvm heap]将堆(frag大小写)增长到21.444MB,用于8388612字节分配”

并且行“Final test”没有显示,因此行“serverStream.Read(inStream,0,buffSize);”正在使应用程序崩溃。我尝试过使用.Flush()和.Close(),但是这些都不起作用

我的代码的发送部分使用“serverSocket.Write()”可以完美地运行,因为其他客户端可以接收消息,那么为什么从服务器读取数据会使应用程序崩溃呢

这是我的第一个android应用程序,所以我想使用一种比从头开始使用java更舒服的语言


提前感谢。

意识到此错误是因为我在尝试发送消息时分配了太多内存

简单改变

byte[] inStream = new byte[clientSocket.ReceiveBufferSize];
buffSize = clientSocket.ReceiveBufferSize;

byte[] inStream = new byte[clientSocket.ReceiveBufferSize];
buffSize = clientSocket.ReceiveBufferSize;
byte[] inStream = new byte[4096];
buffSize = 4096;