使用套接字通过MonoDroid传输数据

时间:2011-10-21 14:07:08

标签: c# android sockets mono xamarin.android

我正在尝试使用Monodroid向Android服务器发送一些信息。

代码如下:

public void sendSomething()
    {
        sock = new TcpClient();
        sock.Connect(Dns.GetHostAddresses("a.domain.com"), 7777);

        String d;
        d = "somedata";

        StreamWriter w = new StreamWriter(sock.GetStream());
        // StreamReader r = new StreamReader(sock.GetStream());

        w.WriteLine(d);
        w.Flush();

        sock.Close();
     }

如果我在winforms应用程序中运行完全相同的例程,它工作正常,但当链接到monodroid中的按钮单击(在android虚拟设备上运行 - 我正在使用评估版本)时,服务器将看到连接但是没有收到任何数据。

有人知道为什么会这样吗?

(编辑修改代码)

1 个答案:

答案 0 :(得分:1)

这可能是服务器问题。例如。让我们假设:

a)在Windows / MS.NET上运行的winform应用程序(而不是在Mono / Linux或OSX上);

b)您的服务器也是基于Windows的,并且ReadLine可以读取套接字

然后写(Unix NewLine)和读(Windows \n)之间的\r\n\可以解释为什么服务器不报告正在读取的内容。

您能告诉我们您如何阅读服务器上的数据吗? (编辑你的问题)