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# 套接字在服务器关闭时关闭客户端_C#_Sockets_Tcp_Client - Fatal编程技术网

C# 套接字在服务器关闭时关闭客户端

C# 套接字在服务器关闭时关闭客户端,c#,sockets,tcp,client,C#,Sockets,Tcp,Client,服务器幻灯片: public void Hey() { sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); LingerOption lo = new LingerOption(false, 0); sck.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName

服务器幻灯片:

    public void Hey()
    {
        sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        LingerOption lo = new LingerOption(false, 0);
        sck.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.Linger,lo);

        try
        {
            sck.Bind(Login.ip_ep);
            sck.Listen(100);
            Socket accepted = sck.Accept();
            byte[] buff = new byte[300000];



            MemoryStream m = new MemoryStream();


            read = accepted.Receive(buff, buff.Length, 0);
            m.Write(buff, 0, read);
            while (read > 0)
            {
                read = accepted.Receive(buff, buff.Length, 0);
                if (read != 0)
                    m.Write(buff, 0, read);


            }

            Bitmap p = new Bitmap(m, false);
            m.Dispose();
            pictureBox1.Image = p;
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            accepted.Dispose();
            accepted.Close();
            sck.Dispose();
            sck.Close();


        }
        catch (Exception f)
        {
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        Thread t = new Thread(Hey);
        t.Start();



    }
客户幻灯片:

 private void timer1_Tick(object sender, EventArgs e)
        {


            Bitmap b = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
            Graphics g = Graphics.FromImage(b as Image);
            g.CopyFromScreen(0, 0, 0, 0, b.Size);
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Image = b;
            sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                sck.Connect(Login.ip_ep);

                    MemoryStream s = new MemoryStream();
                    pictureBox1.Image.Save(s, System.Drawing.Imaging.ImageFormat.Png);


                    sck.Send(s.ToArray());
                    sck.Dispose();
                    sck.Close();



            }
            catch (Exception f) { 

            }



        } 
每当我关闭服务器时,我都要关闭客户端套接字。有可能吗?
另一件事是,在我关闭服务器并重新打开它之后,我只允许使用每个套接字地址,这是什么?

不要忽略异常。在服务器关闭其连接结束后向其写入时,您将收到IOException:“connection reset”。如果您正在读取,您将从read获得-1,从readLine获得null,或者从readXXX获得任何其他X的EOFEException。

关闭服务器套接字是否会在客户端引发异常,您将忽略该异常?