当前位置: 代码迷 >> WinCE >> WinCE设备上用socket连接电脑出有关问题-现有连接被远程主机强行关闭
  详细解决方案

WinCE设备上用socket连接电脑出有关问题-现有连接被远程主机强行关闭

热度:396   发布时间:2016-04-28 13:55:00.0
WinCE设备上用socket连接电脑出问题----现有连接被远程主机强行关闭
在桌面上运行一点问题也没有,但同样的代码在手持机设备上,就不能用了,总是出现 “现有连接被远程主机强行关闭”的提示,在try-catch中也不能捕捉到异常,但实现上Socket可能是没连上的。
代码如下:
C# code
namespace SmartDeviceProject1{    public partial class Form1 : Form    {        private static byte[] result = new byte[2048];        IPAddress ip;        Socket socket;        Thread myThread;        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            ip = IPAddress.Parse(this.comboBox1.Text);            socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            try            {                socket.Connect(new IPEndPoint(ip, int.Parse(this.textBox1.Text)));                myThread = new Thread(new ThreadStart(ReceiveData));                myThread.Priority = ThreadPriority.BelowNormal;                myThread.Start();                        }            catch (Exception ex)            {                MessageBox.Show(ex.Message);            }        }        private void button2_Click(object sender, EventArgs e)        {            if (socket.Connected)            {                socket.Send(Encoding.UTF8.GetBytes(textBox2.Text));                textBox2.Text =string.Empty ;            }        }        private void ReceiveData()        {            while (true)            {                int resultLength = socket.Receive(result);                this.Invoke((EventHandler)delegate                {                    this.textBox3.Text +=(DateTime.Now.ToLongTimeString()                        + Encoding.UTF8.GetString(result, 0, resultLength));                });                Application.DoEvents();            }        }    }}


上面我之所以说在手持设备上Socket可能是没连上的,是因为如果我桌面端没有打开端口,try - catch 同桌面打开端口一样,都不能捕捉到异常,而如果上面的客户端程序如果与服务器端都运行在桌面,则try catch 能捕捉到没连上,出现“由于目标机器积极拒绝,无法连接。 192.168.0.170:10086”的异常信息。

问:如果我想在手持机上用Socket连上桌面,我应该怎么做呢 ?这上面的代码跟本好像连上不,请高手指点



------解决方案--------------------
是不是wince下用socket要动态加载相关dll?

用c来写,不用.net,就是要动态加载。
------解决方案--------------------
唉!
你真机是不是通过activesync同步后再连接的?
同步后真机将由activesync分配一个ip,此ip与你桌面电脑或远程服务端不是同一个子网!

------解决方案--------------------
WinCE上有Wi-Fi吗?试试通过Wi-Fi上网吧
通过ActiveSync连好象是TCP可以UDP不行
------解决方案--------------------
代码,是需要移植的,不是拿来就能用的。
  相关解决方案