2010-07-10 123 views
1

我试图为Windows Mobile 6 Professional的PDA制作一个TCP客户端应用程序。 我试图让它在我的笔记本电脑上第一次使用。 “智能设备”的代码是相同的,但它不起作用。WM6的C#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)上?任何建议?

在此先感谢!

+0

你如何通过PDA连接到网络? PDA是否可以访问192.168.1.68?您可以使用http://wmnettools.codeplex.com/来调试网络问题。 – codekaizen 2010-07-10 03:09:39

+0

这就是我所拥有的:一台笔记本电脑,带有WiShield的Arduino(如果你不知道它是什么,它的硬件有一个TCP堆栈和一个运行在其中的TCP服务器)以及一个PDA(HTC Touch with WM6)。用我的笔记本电脑我没有问题。我可以“ping”192.168.1.68并从它发送/接收消息。与PDA似乎连接,但我无法接收/发送数据。出于测试目的,防火墙被禁用。我会尝试你提到的应用程序。 – msr 2010-07-10 03:24:33

+0

在给出“Net Tools”之后,试一试,这是我得到的结果:“Request timed out”“Request timed out”“Request timed out”“ERROR,NetToolsV2.exe中发生了本机异常。令人沮丧...为什么PDA无法达到192.168.1.68?即使禁用了防火墙? – msr 2010-07-10 03:30:37

回答

0

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

我不确定你为什么看不到错误信息;尝试将它投射到SocketException并提取ErrorCode

+0

防火墙已禁用,但仍然出现此错误。无法连接到TCP服务器。 – msr 2010-07-10 03:21:13

1

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

谢谢你的提示!