2016-09-06 2 views
-1

Je veux connecter l'application de l'unité sur android avec une application informatique. Je pourrais l'utiliser sur le réseau, mais sur Internet, on dit toujours que la machine refuse la connexion. J'ai désactivé le pare-feu de Windows et anti-virus, mais ont encore des problèmes de connecter le serveur et le client Android:'Connexion refusée' se connecter via TCP/IP

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

Voici le code:

côté serveur:

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(); 
} 

C'est du côté client:

// 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

Y a-t-il un pare-feu sur le serveur qui pourrait refuser la connexion? Pouvez-vous vous connecter en utilisant telnet sur le client? Ou une autre machine arbitraire? Je voudrais d'abord vérifier si le serveur est joignable, puis passer au débogage de la connexion client-serveur. –

+0

Le serveur est-il réellement hébergé sur un réseau configuré pour héberger des serveurs? –

+0

Votre gestion des exceptions côté serveur est trop rudimentaire. – EJP

Répondre

1

le mac hine refuse la connexion

Cette erreur a exactement une signification: rien n'écoutait à l'adresse IP: port auquel vous avez essayé de vous connecter. Donc, soit c'était faux, soit votre serveur n'a pas été démarré lorsque votre client a essayé de se connecter.

Les fichiers image n'ont précisément rien à voir avec cela.