跟传智播客学写web服务器软件(1)——开始监听浏览器请求并生成通信套接字...

  先上图,用图来描述整个服务器软件监听浏览器请求的过程。

 

 1.服务器需要创建一个监听套接字(套接字:相当于一部电话),用于监听浏览器发送过来的请求。

 2.然后服务器需要请一个线程来帮忙,让它来负责这个套接字的Accept方法。

 以下的代码,就是做的上述的两个步骤:

  public Form1()
        {
            InitializeComponent();
            // .net 原则上禁止跨线程访问控件,这句话解决跨线程访问的问题
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        //监听套接字
        Socket sokListen = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
        //监听线程
        Thread thrListen;

        private void btnStart_Click(object sender, EventArgs e)
        {
            //1.绑定IP端口--------------------------------------------------------
            //1.1创建IP对象
            IPAddress address = IPAddress.Parse(txtIP.Text.Trim());
            //1.2创建包含端口的网路节点对象
            IPEndPoint endpoint = new IPEndPoint(address,int.Parse(txtPort.Text.Trim()));
            //绑定到套接字
            sokListen.Bind(endpoint);
            //2.设置监听队列-------------------------------------------------------
            //  设置为监听状态
            sokListen.Listen(10);
            //3.创建线程
            thrListen = new Thread(StartListen);
            thrListen.IsBackground = true;
            thrListen.Start();
              

        }

        #region 1.0开启线程监听 - void StartListen()
        /// <summary>
        /// 开启线程监听
        /// </summary>
        void StartListen()
        {
            while (true)
            {
                //接收浏览器的连接请求,并产生一个与之通信套接字
                Socket sokConn = sokListen.Accept();

            }
        } 
        #endregion

        #region 显示消息 -void ShowMsg(string strMsg)
        /// <summary>
        ///  显示消息
        /// </summary>
        /// <param name="strMsg"></param>
        public void ShowMsg(string strMsg)
        {
            txtContent.AppendText(strMsg + "\r\n");
        } 
        #endregion
    }
}

 

转载于:https://www.cnblogs.com/txyblog/p/3548675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值