Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Tcp客户端不断开连接_C#_Sockets_Networking_Asynchronous_Tcpclient - Fatal编程技术网

C# Tcp客户端不断开连接

C# Tcp客户端不断开连接,c#,sockets,networking,asynchronous,tcpclient,C#,Sockets,Networking,Asynchronous,Tcpclient,我的问题是,我第一次使用异步应用程序将Tcp客户端连接到服务器 它的连接和工作,但当我断开它,并再次连接它的数据发送两次一样 s8 s8 连接代码 数据发送代码 断开代码 请告诉我解决这个问题的正确途径。。。。 如果有人告诉我解决方案,我可以发送我的所有代码。在开始编写任何使用TCP的代码之前,请确保您有TCP之上的协议规范。否则,不可能修复这样的错误。一旦有了规范,就很容易: 发送程序是否遵循规范?如果不是,那就是错了 接收程序是否符合规范要求?如果不是,那就是错了 如果两个程序都遵

我的问题是,我第一次使用异步应用程序将Tcp客户端连接到服务器 它的连接和工作,但当我断开它,并再次连接它的数据发送两次一样 s8 s8

连接代码



数据发送代码


断开代码



请告诉我解决这个问题的正确途径。。。。
如果有人告诉我解决方案,我可以发送我的所有代码。在开始编写任何使用TCP的代码之前,请确保您有TCP之上的协议规范。否则,不可能修复这样的错误。一旦有了规范,就很容易:

  • 发送程序是否遵循规范?如果不是,那就是错了

  • 接收程序是否符合规范要求?如果不是,那就是错了

  • 如果两个程序都遵循规范,并且通信仍然不起作用,则说明规范被破坏


  • 我打赌你认为你在发送消息,但实际上你在发送字节。如果您想发送邮件,您需要一个说明邮件开始和结束位置的规范,并且发件人和收件人都必须遵循该规范。

    请记住。。。如果要关闭TCPClient,必须调用:newsock.EndConnect,尝试添加此选项是的,我正在以字节形式发送数据David Schwartz我可以将代码发送给您吗。
                    constatus.Text = "Connecting.....";
                    //  newsock = null;
                    newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    //IPEndPoint iep = new IPEndPoint(IPAddress.Any, 20);
                    IPEndPoint iep = new IPEndPoint(IPAddress.Parse(textBox2.Text), Convert.ToInt16(textBox3.Text));
                    newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);        
    
                if (!InvokeRequired)
                {
                    try
                    {
                        byte[] message = Encoding.ASCII.GetBytes(Allinput_Command);
                        client.BeginSend(message, 0, message.Length, SocketFlags.None, new AsyncCallback(SendData), client);
                     }
                    catch (Exception) { }                   
                }
                else
                {
                    Invoke(new ThreadStart(data_send));
                }
    
    client.Close();
    timer.Stop();
    timer1.Stop();