zoukankan      html  css  js  c++  java
  • s​o​c​k​e​t​ ​由​于​目​标​机​器​积​极​拒​绝​,​无​法​连​接​的​解​决​办​法

    公司最近提出一个需求,要在WEB上远程管理客户端软件。那我们就仿路由器那种模式用SOCKET来解决吧。做了个DEMO,本机测试OK,拿到别的机器上做服务器,提示由于目标机器积极拒绝,无法连接。查询各种资料,有的说是端口没开,有的说是服务没开。各种雾水啊!仔细一想,问题可能出在本机在局域网IP上,而不是用127.0.0.1。更正代码后,问题解决。下面演示服务器端代码的关键部分。 
    protected void Listen() { 
    MessageBox.Show("start listening"); 

    stringip = "";
    System.Net.IPHostEntryIpEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());  

    for (int i = 0; i != IpEntry.AddressList.Length; i++) {
    if (!IpEntry.AddressList[i].IsIPv6LinkLocal){
    ip= IpEntry.AddressList[i].ToString();                
    }           
    }
    IPEndPointipend = new IPEndPoint(IPAddress.Parse(ip), 8000);          
    Socket sc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 

    sc.Bin(ipend);           
    Socket acc; 

    while (true) {
    sc.Listen(1);
    acc= sc.Accept(); 
    byte[] buff = new byte[1024];
    intrecbyte = acc.Receive(buff, buff.Length, 0);
    if (recbyte == 0) break;
    stringreciveval = "";

    reciveval += Encoding.GetEncoding("gb2312").GetString(buff, 0, recbyte);                    
    string returnval = "开始升级";
    byte[] returnBy = Encoding.GetEncoding("gb2312").GetBytes(returnval);
    acc.Send(returnBy, returnBy.Length, 0); 
     }
    acc.Close(); sc.Close();       

    public string sendMessage() {
    IPEndPointipend = new IPEndPoint(IPAddress.Parse("192.168.XXX.XXX"),8000);
    Socket sc=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
    sc.Connect(ipend);
    string message = "请升级软件";
    byte[] bt = Encoding.GetEncoding("gb2312").GetBytes(message);
    sc.Send(bt,bt.Length,0);
    byte[] rebuff = new byte[1024];
    intrecive = sc.Receive(rebuff, rebuff.Length, 0);
    stringreturnval = "";
    returnval += Encoding.GetEncoding("gb2312").GetString(rebuff, 0, recive);
    sc.Close();
    returnreturnval;
    }

  • 相关阅读:
    Idea中配置tomcat启动maven项目读取指定的profile文件
    idea下将springboot项目打成war包发布到本地tomcat服务器上
    NameNode多目录配置
    Android 集成百度ocr报错[283506] Load jni so library error
    Android 集成科大讯飞语音识别(语音听写)报错‘创建对象失败,请确认libmsc.so放置正确,且有调用createUtility进行初始化’
    Android 集成百度地图,定位,导航,围栏,禁区功能
    Android 加载本地图片失败的问题
    Android 闪光灯测心率
    剑指offer(一)
    腾讯云重启慢
  • 原文地址:https://www.cnblogs.com/niuchunjian/p/3829045.html
Copyright © 2011-2022 走看看