2016-09-06 76 views
-1

コンピュータアプリケーションでアンドロイドのユニティアプリケーションに接続したいと考えています。私はネットワーク上でそれを実行することができますが、インターネット上では常にマシンが接続を拒否していると言います。私は窓やアンチウイルスのファイアウォールを無効にしますが、まだサーバーとAndroidのクライアントを接続する問題を持っていますTCP/IPで接続している「接続が拒否されました」

サーバー側:

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

これは。ここで

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

はコードがありますクライアント側:

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

マックヒネが接続を拒否しています

このエラーはちょうど意味があります。接続しようとしたIP:ポートで何も聞いていませんでした。クライアントが接続しようとしたときにサーバーが起動していないか、間違っていたかのいずれかです。

イメージファイルは、それとはまったく関係ありません。

関連する問題