基于C/S模式开发的网络通信,
客户端部分代码:
//建客户端套接字,绑定IP和端口
Network.Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint tempRemoteIP = new IPEndPoint(IPAddress.Parse("192.168.1.100"), 9000);
//IPEndPoint tempRemoteIP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9000);
Network.Socket.Bind(tempRemoteIP);
//连接客户端
IPEndPoint tempRemoteIP = new IPEndPoint(IPAddress.Parse(“192.168.1.168”),  9000);
EndPoint epTemp = (EndPoint)tempRemoteIP;
socket.Connect(epTemp);
...信息收发服务端部分代码:
IPEndPoint iePort = new IPEndPoint(IPAddress.Parse(“192.168.1.168”),  9000);
this.tcpListener = new TcpListener(iePort);
tcpListener.Start();
Socket newSockte = tcpListener.AcceptSocket();  //开始监听
...信息收发    以上代码在本地测试(客户端和服务器在同一台机,客户端绑定IP127.0.0.1)时候正常运行,但是在不同的电脑上运行时候,当有客户端连接,服务器抛出异常:请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析。本人新手,请高手帮看看问题出在哪了,谢谢。

解决方案 »

  1.   

    之前客户端也没绑定IP和端口,出同样的问题
    IPEndPoint tempRemoteIP = new IPEndPoint(IPAddress.Parse("192.168.1.100"), 9000);
    //IPEndPoint tempRemoteIP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9000);
    Network.Socket.Bind(tempRemoteIP);
    是后来加上去的
      

  2.   

    局域网内不需要穿越防火墙 肯定是你代码有问题了 把Ex.Message弹出来看看
      

  3.   

    Ex.Message的内容:请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析
      

  4.   

    这应是网络层报的DNS错误。你先要PING通过。
      

  5.   

    问题已解决,错误出在获取客户端socket的ip地址的代码上,之前用的Dns类的GetHostAddresses()方法,所以一直报错解析出错,改成使用Sockte.RemoteEndPoint()后运行正常。新手犯的低级错误...谢谢大家