2017-02-05 1 views
1

안녕하세요. 안드로이드 전화 Wi-Fi 핫스팟을 사용하여 네트워크를 만든 다음 C#을 사용하여이 핫스팟에 연결합니다.C# TCP 클라이언트가 IP 주소에 연결하지 않습니다.

핫스팟의 ipadress는 192.168.43.1입니다.

먼저 노트북 Wi-Fi로 Wi-Fi 핫스팟에 연결합니다.

지금 내가 사용하고 C# 코드는 :

private void connectToServer() 
     { 
      try 
      { 
       TcpClient tcpclnt = new TcpClient(); 
       Console.WriteLine("Connecting....."); 

       tcpclnt.Connect("192.168.43.1", 8001); 
       // use the ipaddress as in the server program 

       Console.WriteLine("Connected"); 
       Console.Write("Enter the string to be transmitted : "); 

       String str = Console.ReadLine(); 
       Stream stm = tcpclnt.GetStream(); 

       ASCIIEncoding asen = new ASCIIEncoding(); 
       byte[] ba = asen.GetBytes(str); 
       Console.WriteLine("Transmitting....."); 

       stm.Write(ba, 0, ba.Length); 

       byte[] bb = new byte[100]; 
       int k = stm.Read(bb, 0, 100); 

       for (int i = 0; i < k; i++) 
        Console.Write(Convert.ToChar(bb[i])); 

       tcpclnt.Close(); 
      } 

      catch (Exception e) 
      { 
       Console.WriteLine("Error..... " + e.Message); 
      } 
     } 

하지만 항상이 예외를 얻을 : 대상 컴퓨터 가 적극적으로 거부했기 때문에

오류를 ..... 연결하지 못했습니다 192.168.43.1:8001

안녕하세요, 일부 검색 후 안녕하세요, netstat를 사용하여 내 컴퓨터에서 포트를 찾을 수 없습니다 :

TCP 127.0.0.1:5037   admin-PC:65298   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65299   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65300   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65301   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65302   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65304   TIME_WAIT 
    TCP 127.0.0.1:5037   admin-PC:65305   TIME_WAIT 
    TCP 127.0.0.1:49165  admin-PC:49436   ESTABLISHED 
    TCP 127.0.0.1:49263  admin-PC:49264   ESTABLISHED 
    TCP 127.0.0.1:49264  admin-PC:49263   ESTABLISHED 
    TCP 127.0.0.1:49265  admin-PC:49266   ESTABLISHED 
    TCP 127.0.0.1:49266  admin-PC:49265   ESTABLISHED 
    TCP 127.0.0.1:49436  admin-PC:49165   ESTABLISHED 
    TCP 127.0.0.1:49559  admin-PC:49560   ESTABLISHED 
    TCP 127.0.0.1:49560  admin-PC:49559   ESTABLISHED 
    TCP 127.0.0.1:51477  admin-PC:51478   ESTABLISHED 
    TCP 127.0.0.1:51478  admin-PC:51477   ESTABLISHED 
    TCP 127.0.0.1:55300  admin-PC:55301   ESTABLISHED 
    TCP 127.0.0.1:55301  admin-PC:55300   ESTABLISHED 
    TCP 127.0.0.1:61797  admin-PC:61798   ESTABLISHED 
    TCP 127.0.0.1:61798  admin-PC:61797   ESTABLISHED 
    TCP 127.0.0.1:61800  admin-PC:61801   ESTABLISHED 
    TCP 127.0.0.1:61801  admin-PC:61800   ESTABLISHED 
    TCP 127.0.0.1:61807  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:61809  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:61810  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:61811  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:61813  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63271  admin-PC:63272   ESTABLISHED 
    TCP 127.0.0.1:63272  admin-PC:63271   ESTABLISHED 
    TCP 127.0.0.1:63274  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63275  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63279  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63284  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63304  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63351  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63353  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63354  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63355  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63356  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63357  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63358  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63359  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63367  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63368  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63370  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63373  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63377  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63378  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63385  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63386  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63387  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63388  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63389  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63396  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:63462  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:64544  admin-PC:49333   TIME_WAIT 
    TCP 127.0.0.1:64545  admin-PC:64546   TIME_WAIT 
    TCP 127.0.0.1:64555  admin-PC:5037   TIME_WAIT 
    TCP 127.0.0.1:64557  admin-PC:5037   TIME_WAIT 
    TCP 127.0.0.1:64558  admin-PC:5037   TIME_WAIT 
    TCP 127.0.0.1:64919  admin-PC:5037   ESTABLISHED 
    TCP 127.0.0.1:65303  admin-PC:5563   SYN_SENT 
    TCP 192.168.1.34:64035  43.239.149.131:http TIME_WAIT 
    TCP 192.168.12.2:63262  192.168.12.101:22469 ESTABLISHED 

여전히 answer을 읽었지만 여전히이 오류가 발생합니다. 당신은 점점 예외를 바탕으로

public class MainActivity extends Activity { 

private ServerSocket serverSocket; 

Handler updateConversationHandler; 

Thread serverThread = null; 

private TextView text; 

public static final int SERVERPORT = 8001; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    text = (TextView) findViewById(R.id.text2); 

    updateConversationHandler = new Handler(); 

    this.serverThread = new Thread(new ServerThread()); 
    this.serverThread.start(); 

} 

@Override 
protected void onStop() { 
    super.onStop(); 
    try { 
     serverSocket.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

class ServerThread implements Runnable { 

    public void run() { 
     Socket socket = null; 
     try { 
      serverSocket = new ServerSocket(SERVERPORT); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     while (!Thread.currentThread().isInterrupted()) { 
      try { 
       socket = serverSocket.accept(); 
       CommunicationThread commThread = new CommunicationThread(socket); 
       new Thread(commThread).start(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

class CommunicationThread implements Runnable { 

    private Socket clientSocket; 
    private BufferedReader input; 

    public CommunicationThread(Socket clientSocket) { 

     this.clientSocket = clientSocket; 

     try { 
      this.input = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream())); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void run() { 

     while (!Thread.currentThread().isInterrupted()) { 

      try { 
       String read = input.readLine(); 
       updateConversationHandler.post(new updateUIThread(read)); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 

class updateUIThread implements Runnable { 

    private String msg; 

    public updateUIThread(String str) { 
     this.msg = str; 
    } 

    @Override 
    public void run() { 
     text.setText(text.getText().toString()+"Client Says: "+ msg + "\n"); 
    } 
} 
} 
+0

* 무슨 일을합니까? 너? –

+0

오류 ..... 대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다. 192.168.43.1:8001 – kemdo

+0

상당히 명확합니다. 대상이 연결을 허용하지 않습니다. –

답변

0

, 문제는 연결 자체에 코드에서되지 않습니다 : 여기 내 안드로이드 코드입니다. 방화벽 문제이거나 다른 포트에서 수신 대기하는 프로세스 일 수 있습니다.

EDIT : OP에서 발견 한 문제는 IIS에 있었고 은 IIS를 재설정하면 문제가 인 것으로 나타났습니다. IIS를 재설정하려면 수동 또는 명령 프롬프트를 통해 실행 (Win + R) -> cmd를 열고 (관리자 권한으로) -> "iisreset"을 입력하십시오 (""제외)

+0

cmd에서 포트를 찾을 수 없습니다. 업데이트 된 질문입니다. plz보세요, 고맙습니다. – kemdo

+0

나는 전문가가 아니지만 다음을 시도 할 것입니다 : AndroidManifest.xml에서 ""에 대한 사용 권한을 확인하고 없으면 추가하십시오. –

+0

안녕하세요, 솔루션은 iis를 재설정하고 호스트 컴퓨터에 연결하기 쉽도록 재설정 한 후 iis 서비스를 사용하지 않도록 컴퓨터 사용 부트 캠프가 될 수 있음을 알았습니다. – kemdo

관련 문제