【问题标题】:C# TCP Client for WM6WM6 的 C# TCP 客户端
【发布时间】:2014-03-06 17:28:12
【问题描述】:

我正在尝试使用 Windows Mobile 6 Professional 为 PDA 制作 TCP 客户端应用程序。 我试图首先在我的笔记本电脑上制作它并且它有效。 “智能设备”的代码完全一样,但它不起作用。

代码如下:

// IP and Port
string IP = "192.168.1.68";
int port = 1000;

// TCP connection
TcpClient connection;
StreamReader TCPreader;
StreamWriter TCPwriter;

//(...)

    try
    {
        connection = new TcpClient(IP, port);
        NetworkStream stream = connection.GetStream();
        TCPreader = new StreamReader(stream);
        TCPwriter = new StreamWriter(stream);

        // wait for welcome message
        status_label.Text = TCPreader.ReadLine();
    }
    catch(Exception ex)
    {
        MessageBox.Show("ERROR: " + ex.Message);
    }

“readLine()”方法调用引发异常。我无法收到消息,否则我会收到类似“未安装此异常消息,您必须安装 NETCFv35.messages.en.cab”的信息。我已经安装了那个 .cab,但我得到了同样的信息。

出了什么问题?为什么此代码适用于我的笔记本电脑(WinForms 应用程序/NET3.5)而不适用于 PDA(智能设备/NETCF3.5)?有什么建议吗?

提前致谢!

【问题讨论】:

  • 您如何通过 PDA 连接到网络? PDA 可以访问 192.168.1.68 吗?您可以使用wmnettools.codeplex.com 来调试网络问题。
  • 这是我的:一台笔记本电脑,带 WiShield 的 Arduino(如果你不知道它是什么,它的硬件带有 TCP 堆栈和运行在其中的 TCP 服务器)和 PDA(HTC Touch与 WM6)。我的笔记本电脑没有问题。我可以“ping” 192.168.1.68 并从中发送/接收消息。使用 PDA 似乎可以连接,但我无法接收/发送数据。出于测试目的禁用防火墙。我会试试你提到的应用程序。
  • 在尝试了“网络工具”之后,我得到了以下信息:“请求超时”“请求超时”“请求超时”“错误,NetToolsV2 中发生本机异常。可执行程序”。郁闷... PDA为什么连不上192.168.1.68?即使禁用了防火墙?

标签: c# windows-mobile tcpclient


【解决方案1】:

我想我找到了问题所在。当我的 PDA 通过 USB 连接到我的笔记本电脑时,WiFi 被禁用。 Arghhh 我刚刚断开 PDA 与笔记本电脑的连接,现在我无法从 192.168.1.68 发送/接收消息。

感谢大家的提示!

【讨论】:

    【解决方案2】:

    检查您的防火墙,并确保您的服务器正在运行。

    我不确定您为什么看不到错误消息;尝试将其转换为 SocketException 并提取 ErrorCode

    【讨论】:

    • 防火墙已禁用,但我仍然收到此错误。无法连接到 TCP 服务器。
    猜你喜欢
    • 2011-08-08
    • 2020-12-07
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多