繁体   English   中英

没有连接,因为目标机器主动拒绝它为什么?

[英]No connection could be made because the target machine actively refused it why?

嗨我正在使用TCPCLient和TCPlitner传输数据,但我收到错误不连接下面是我的代码

 private void button1_Click(object sender, EventArgs e)
 {
    TcpClient tcpc = new TcpClient("192.168.21.46", 10);            
    NetworkStream nts = tcpc.GetStream();
    if (nts.CanWrite)
    {
         Byte[] sends = System.Text.Encoding.ASCII.GetBytes(textBox1.Text.ToCharArray());
         nts.Write(sends, 0, sends.Length);
         nts.Flush();
    }
}

private void button2_Click(object sender, EventArgs e)
{
    TcpListener myListener = new TcpListener(10);
    myListener.Start();
    while (true)
    {
        //Accept a new connection
        Socket mySocket = myListener.AcceptSocket();
        if (mySocket.Connected)
        {                   
            //make a byte array and receive data from the client 
            Byte[] receive = new Byte[64];
            int i = mySocket.Receive(receive, receive.Length, 0);
            char[] unwanted = { ' ', ' ', ' ' };
            string rece = System.Text.Encoding.ASCII.GetString(receive);
            label1.Text = rece.TrimEnd(unwanted);                  
        }
    }
}

这两个按钮我添加了相同的形式和Ip apddress,这是我的系统IP地址。 任何人都可以告诉我为什么会发生这种情况。 即使我也删除了防火墙设置。

我假设你有两个不同的程序,一个正在监听而另一个正在发送。 如果不这样做,请将它们分开。 我认为你有一个网络问题,但不能确切地说它被阻止了。

你正在使用端口10,它通常对于任意应用程序使用来说太低了,即使它当前没有被占用。 如果您正在构建自定义协议,请尝试侦听大约1000以上的端口(更多经验法则)。 您可以在http://technet.microsoft.com/en-us/library/cc959828.aspx或google查看“tcp well known ports”以获取更多详细信息,并确保您没有发生冲突。

尝试运行TCP侦听器,然后打开命令提示符并键入以下内容

telnet localhost 10

或使用您更改10的端口号。 我尝试了你的代码,并能够毫无问题地连接到端口10。 如果您没有“telnet”程序,则可以在Windows中打开该功能。 (搜索“功能”并选择“打开或关闭Windows功能”然后打开“Telnet客户端”)

如果telnet程序连接,您将知道该问题与连接无关。 如果telnet程序无法连接,那么你就会知道某些东西仍在阻塞该端口。 尝试使用其他端口并重新测试连接。 一旦telnet连接,您就可以专注于程序的TCP客户端部分。

首先,你的UI将在按钮2上单击,因为它停留在while(true)循环上,因此使用BeginAcceptSocket(IAsyncResult r,Object state)进行异步。

其次,你必须使用环回地址,否则防火墙应该阻止端口10,假设它没有打开。 此外,TcpListener(int端口)是obsolote,它最好使用TcpListener(IPAddress localddr,int port)并使用两个环回地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM