2016-09-06 63 views
-1

我想连接Android上的统一应用程序与计算机应用程序。我可以在网络上运行它,但通过互联网它总是说机器拒绝连接。我已经停用Windows和防病毒的防火墙,但仍然有连接的服务器和Android客户端问题:通过TCP/IP连接'连接被拒绝'

No connection could be made because the target machine actively refused it. 

下面是代码:

服务器端:

TcpListener tcpListener; 
Socket socket; 
NetworkStream networkStream; 
Thread thread; 

string getIpAddress() 
{ 
    System.Net.IPHostEntry host; 
    string localIp = ""; 
    host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()); 
    foreach (System.Net.IPAddress ip in host.AddressList) 
    { 
     localIp = ip.ToString(); 
    } 
    return localIp; 
} 

public void ReceiveImage() 
{ 
    try 
    { 
     IPAddress localAddr = IPAddress.Parse("95.171.54.53"); 
     tcpListener = new TcpListener(localAddr, 53100); 
     tcpListener.Start(); 
     socket = tcpListener.AcceptSocket(); 
     networkStream = new NetworkStream(socket); 
     pictureBox1.Image = Image.FromStream(networkStream); 
     if (socket.Connected == true) 
     { 
      while (true) 
      { 
       tcpListener.Stop(); 
       ReceiveImage(); 
      } 
     } 
    } 
    catch(Exception ex) 
    { 
     string Message = ex.Message; 
    } 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    thread = new Thread(new ThreadStart(ReceiveImage)); 
    thread.Start(); 
} 

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    tcpListener.Stop(); 
    thread.Abort(); 
} 

这是客户端:

// Update is called once per frame 
int frameSaveCount = -1; 
int FrameCount = -1; 
Socket socket; 
NetworkStream networkStream; 
Thread thread; 
MemoryStream memoryStream; 
TcpClient tcpClient; 
BinaryWriter binaryWriter; 

void Update() 
{ 
    // ... 
    if(FrameCount % 10==0) 
    { 
     // ... 
     send(bytes); 
    } 
} 

void send(Byte[] bytes) 
{ 
    try 
    { 
     print(getIpAddress()); 
     tcpClient = new TcpClient("95.171.54.53", 53100); 
     networkStream = tcpClient.GetStream(); 
     binaryWriter = new BinaryWriter(networkStream); 
     binaryWriter.Write(bytes); 
     binaryWriter.Close(); 
     networkStream.Close(); 
     tcpClient.Close(); 
    } 
    catch (Exception exception) 
    { 
     string message = exception.Message; 
     print(message); 
    } 
} 
+0

服务器上是否有可能拒绝连接的防火墙?你能在客户端上使用telnet连接吗?或者另一个任意机器?我会首先检查服务器是否可访问,然后继续调试客户机 - 服务器连接。 –

+0

服务器是否实际托管在设置为主机服务器的网络上? –

+0

您的服务器端异常处理是不可接受的基础。 – EJP

回答

1

的MAC hine拒绝连接

此错误具有一个含义:在您尝试连接的IP:端口上没有任何内容正在监听。所以,要么是错误的,要么是客户端尝试连接时服务器未启动。

图像文件与它完全无关。