簡體   English   中英

C#TCP客戶端無法連接到IP地址

[英]C# TCP client does not connect to IP Adress

您好我正在使用Android手機Wi-Fi熱點創建網絡,然后使用C#連接到此熱點。

熱點的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

我仍然讀了答案,但仍然得到這個錯誤。 這是我的android代碼:

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

根據您獲得的異常,問題不在您的代碼中,而是在連接本身。 這可能是防火牆問題,也可能是在不同端口上偵聽的進程。

編輯:OP發現他遇到的問題是在IIS中, 重置IIS解決了他的問題 要重置IIS,您可以手動或通過命令提示符執行此操作:運行(Win + R) - >打開cmd(具有管理員權限) - >鍵入“iisreset”(不帶“”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM