.Net网络编程——服务端获取客户端连接

简介: 一,客户端服务端连接图示          其中,在客户端和服务端的socket中,都报存这连接的信息;客户端通过connect连接,服务端可以调用AcceptTcpClient来获取链接到服务端的客户端,每一个客户端和服务端的连接都对应这唯一一个Socket.



一,客户端服务端连接图示







         其中,在客户端和服务端的socket中,都报存这连接的信息;客户端通过connect连接,服务端可以调用AcceptTcpClient来获取链接到服务端的客户端,每一个客户端和服务端的连接都对应这唯一一个Socket.




二,服务端获取连接示例



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;


namespace 获取单一客户端连接
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 获取单一客户端连接

                //Console.WriteLine("服务端启动啦啦啦。。");
                //IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
                //TcpListener listener = new TcpListener(ip, 8500);
                //listener.Start();
                //Console.WriteLine("服务端开始监听8500。。。。");

                ////获取一个连接,中断方法
                //TcpClient remoteClient = listener.AcceptTcpClient();//获取一个与客户端的连接,同时它返回一个TcpClient类型示例,此时它所包装的是由服务端去往客户端的socket(这是一个block method)

                ////打印连接到客户端的信息
                //Console.WriteLine("客户端连接成功。本地:{0}------>客户端{1}", remoteClient.Client.LocalEndPoint, remoteClient.Client.RemoteEndPoint);

            #endregion

            #region 获取多个客户端的连接

                Console.WriteLine("服务端启动啦啦啦。。");
                IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });
                TcpListener listener = new TcpListener(ip, 8500);
                listener.Start();
                Console.WriteLine("服务端开始监听8500。。。。");

                while (true)
                {
                    /*
                        将服务端放入一个始终执行的循环中。
                     
                     */

                    //获取一个连接,中断方法
                    TcpClient remoteClient = listener.AcceptTcpClient();//获取一个与客户端的连接,同时它返回一个TcpClient类型示例,此时它所包装的是由服务端去往客户端的socket(这是一个block method)

                    //打印连接到客户端的信息
                    Console.WriteLine("客户端连接成功。本地:{0}------>客户端{1}", remoteClient.Client.LocalEndPoint, remoteClient.Client.RemoteEndPoint);
                }
            
               
            #endregion
        }
    }
}



            PS:AcceptTcpClient是一个同步的方法,对比AJAX的异步,可以发现如果服务端获取不到客户端的连接,就会一直阻塞在这里,而不是像AJAX请求数据的时候,下面的东西可以继续,成功后回调。










目录
相关文章
|
16天前
|
Ubuntu
虚拟机Ubuntu连接不了网络的解决方法
虚拟机Ubuntu连接不了网络的解决方法
|
2月前
|
机器学习/深度学习 存储 计算机视觉
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
169 1
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
|
2月前
|
机器学习/深度学习 算法 网络架构
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
365 0
【CVPR2017】AOD-Net:端到端的除雾网络(原理&实操)
|
26天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
39 1
|
26天前
|
监控 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
49 1
|
19天前
|
缓存 网络协议 数据库连接
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
20 0
|
23天前
|
机器学习/深度学习 自然语言处理 PyTorch
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
【PyTorch实战演练】基于全连接网络构建RNN并生成人名
23 0
|
26天前
|
监控 Shell Linux
【Shell 命令集合 网络通讯 】Linux 拨号连接 dip命令 使用指南
【Shell 命令集合 网络通讯 】Linux 拨号连接 dip命令 使用指南
35 0
|
26天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 建立串行连接 cu命令 使用指南
【Shell 命令集合 网络通讯 】Linux 建立串行连接 cu命令 使用指南
28 0

热门文章

最新文章