一、服务器监听客户端的连接请求
代码如下:- public Form1()
- {
- InitializeComponent();
- TextBox.CheckForIllegalCrossThreadCalls = false;//关闭跨线程修改控件检查
- }
- Socket sokWatch = null;//负责监听 客户端 连接请求的 套接字
- Thread threadWatch = null;//负责调用套接字,执行 监听请求的线程
- //开始监听按钮
- private void button1_Click(object sender, EventArgs e)
- {
- //实例化 套接字 (ip4寻址协议,流式传输,TCP协议)
- sokWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- //创建IP对象
- IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
- //创建网络节点对象 包含 ip和port
- IPEndPoint endPoint = new IPEndPoint(address, int.Parse(txtPort.Text.ToString().Trim()));
- //将 监听套接字 绑定到 对应的IP和端口
- try
- {
- sokWatch.Bind(endPoint);
- }
- catch (Exception ex)
- {
- txtShow.AppendText("异常:"+ex);
- return;
- }
- //设置 监听队列 长度为10(同时能处理10个连接请求)
- sokWatch.Listen(10);
- threadWatch = new Thread(StartWatch);
- threadWatch.IsBackground = true;
- threadWatch.Start();
- txtShow.AppendText("启动服务成功!\r\n");
- }
- void StartWatch()
- {
- //监听 客户端 连接请求 ,但是,它会阻断当前线程
- sokWatch.Accept();
- txtShow.AppendText("接受连接成功!\r\n");
- }
复制代码 |