超简单问题:PPC下Socket问题,走过,路过,别错过:)
偶PDA支持802.11b,通过局域网内DHCP自动获得IP地址。
用PDA上的IE可以访问局域网内web网站,问题出在我移植Socket通讯上。
不论PPC上用Socket还是TcpClient,通讯都不行,能捕捉到的错误是:无法识别这种主机。
最后测试的程序如下:
private void button1_Click(object sender, System.EventArgs e)
{
TcpClient tcpc=new TcpClient();
byte[] buffer=new byte[64];
this.labelMsg.Text="正在连接...";
Application.DoEvents();
this.button1.Enabled=false;
try
{
//tcpc.Connect(this.textBoxHost.Text,int.Parse(this.textBoxPort.Text));
tcpc.Connect("192.168.0.137",8001);
Stream s;
s=tcpc.GetStream();
//buffer=Encoding.ASCII.GetBytes(this.textBoxCommand.Text);
//s.Write(buffer,0,this.textBoxCommand.Text.Length);
//for (int i=0;i<buffer.Length;i++)
// buffer[i]=0;
s.Write(Encoding.ASCII.GetBytes(this.textBoxCommand.Text),0,this.textBoxCommand.Text.Length);
int length=s.Read(buffer,0,buffer.Length);
this.labelMsg.Text=Encoding.ASCII.GetString(buffer,0,length);
tcpc.Close();
}
catch(Exception Ex)
{
this.labelMsg.Text=Ex.Message.ToString();
}
this.button1.Enabled=true;
}
应该不用怀疑我服务器上的通讯服务端,在windows上测试连接肯定没有问题。
郁闷完了……。
tcpc.Connect("192.168.0.137",8001);
把这里面的用域名或者主机名替换都不行(网内有DNS服务器和DHCP服务器)。
用PDA的IE时IP和域名都能返回。