Windows Mobile 6.5设备上的TcpClient在停靠时无法通信

时间:2016-11-16 17:13:17

标签: winforms

我在Windows Mobile 6.5设备上的dot net compact framework 3.5上运行C#应用程序,该设备利用TcpClient和NetworkStream将字节数组发送到主机PC上运行的服务。它必须能够通过将设备插入通讯座并通过Windows Mobile设备中心进行通信,该设置允许设备连接到PC时进行数据连接。 我收到以下错误'无法从传输连接中读取数据'。当同一设备通过wifi连接到网络时,它可以很好地工作,但这不是一个选项,因为没有wifi将被部署。下面的代码片段中的nwStream.Write行发生错误:

public bool PostInitialData(string ipAddress, int portNo, string dataString)
    {
        bool retVal = true;

        try
        {
            IPAddress stringIPAddress = IPAddress.Parse(ipAddress);

            TcpClient tcpClient = new TcpClient();
            tcpClient.Connect(stringIPAddress, portNo);

            NetworkStream nwStream = tcpClient.GetStream();

            byte[] bytesToSend = Encoding.ASCII.GetBytes(dataString);

            //---send the text

            nwStream.Write(bytesToSend, 0, bytesToSend.Length);

            //---read back the text

            byte[] bytesToRead = new byte[tcpClient.ReceiveBufferSize];
            int numBytesRead = nwStream.Read(bytesToRead, 0, tcpClient.ReceiveBufferSize);
            string serverResponse = Encoding.ASCII.GetString(bytesToRead, 0, numBytesRead);


            tcpClient.Close();

            if (serverResponse != "OK")
            {
                retVal = false;
            }

        }
        catch (Exception ex)
        {
            LogError.ErrorHandler.LogErrorDetail(ex);
            retVal = false;
        }

        return retVal;
    }

0 个答案:

没有答案