2016-09-06 6 views
-1

컴퓨터 응용 프로그램과 함께 Android 응용 프로그램을 연결하고 싶습니다. 네트워크에서 실행할 수는 있지만 인터넷을 통해 항상 컴퓨터가 연결을 거부하고 있다고 말합니다. 나는 창 및 안티 바이러스 방화벽을 해제하지만 여전히 문제는 서버와 안드로이드 클라이언트 연결이있다 :TCP/IP를 통한 'Connection refused'연결

서버 측 :

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

연결을 거부 할 수있는 방화벽이 서버에 있습니까? 클라이언트에서 텔넷을 사용하여 연결할 수 있습니까? 아니면 다른 임의의 기계? 먼저 서버에 연결할 수 있는지 확인한 다음 클라이언트 - 서버 연결을 디버깅합니다. –

+0

서버가 실제로 호스트 서버로 설정된 네트워크에서 호스팅되고 있습니까? –

+0

서버 측 예외 처리는 아주 초보적입니다. – EJP

답변

1

맥 hine이 연결을 거부하고 있습니다.

이 오류는 정확히 한 가지 의미가 있습니다. 연결하려고 시도한 IP : 포트에서 듣고있는 것이 없습니다. 따라서 클라이언트가 연결하려고 시도했을 때 잘못되었거나 서버가 시작되지 않았습니다.

이미지 파일은 이미지와 아무 관련이 없습니다.