最近从MFC的套接字转到C#
感觉有很多地方不一样我有一下几个问题:
1.在MFC中当客户端主动并且合法地关闭套接字时,服务器有FD_CLOSE消息,但是C#怎么做到同样的功能呢?
2.看下面代码(服务端的)        private void StartServer_Click(object sender, EventArgs e)
        {
            if (ServerState == false)
            {
                localhost = Dns.GetHostEntry(Dns.GetHostName());
                myIP = localhost.AddressList[0];
                iep = new IPEndPoint(myIP, 8080);
                try
                {
                    ser_sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    ser_sock.Bind(iep);
                    ser_sock.Listen(5);
                    ServerState = true;
                    ser_sock.BeginAccept(new AsyncCallback(AcceptConnection), ser_sock);
                }
                catch
                {
                    this.serverinfo.Text += "Could not start server!\r\n";
                }
            }
            else
            {
                
                try
                {
                    //accept_sock.Close();   //去掉这个注释后还是有错,我想这样来关闭与客户端的连接
                    ser_sock.Close();
                    ServerState = false;
                }
                catch
                {
                    MessageBox.Show("An error occurs");
                }
            }        }        
        private void AcceptConnection(IAsyncResult ar)
        {
            Socket temp_sock = (Socket)ar.AsyncState;
            if (accept_sock.Connected)
                return;
            accept_sock = temp_sock.EndAccept(ar);
            this.CurrentConn.Items.Add(accept_sock.RemoteEndPoint.ToString()); 
            this.serverinfo.Text +=DateTime.Now.ToString()+"  "+accept_sock.RemoteEndPoint.ToString()+ "  connected.\r\n";
            ser_sock.BeginAccept(new AsyncCallback(AcceptConnection), accept_sock);
        }我想点一个按钮后启动服务,再点一次该按钮就关闭服务
不过按照我这样写,当关闭服务时就程序出错
3.怎么在客户端主动关闭与服务端的连接,并能通知服务端关闭消息