.Net网络编程——服务端获取客户端连接-阿里云开发者社区

开发者社区> soledad_lhc> 正文

.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请求数据的时候,下面的东西可以继续,成功后回调。










版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能
原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/index.html 引言 Android设备除了可以与服务器建立连接之外,Android无线API还允许处于同一网段下的两台设备建立连接,或者是物理距离相近的两台设备建立连接。
823 0
.NET数据库编程求索之路--10.使用EF实现(划分输入验证层)
10.使用EF实现(划分输入验证层) 注:使用partial类来实现输入验证逻辑的分层。   源码下载: /Files/SummerRain/NetDbDevRoad/a使用EF实现4划分输入验证层.
576 0
黑马程序员 十一、网络编程
Java帮帮-IT资源分享网  十一、黑马程序员—网络编程 第 11 天:网络编程(1)  1、什么是网络编程? 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算 机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后 接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是 一个
1300 0
Asp.Net Web API 2第三课——.NET客户端调用Web API
原文:Asp.Net Web API 2第三课——.NET客户端调用Web API Asp.Net Web API 导航     Asp.Net Web API第一课——入门http://www.cnblogs.com/aehyok/p/3432158.html       Asp.Net Web API第二课——CRUD操作http://www.cnblogs.com/aehyok/p/3434578.html 前言 本教程演示从一个控制台应用程序,使用HttpClient调用Web API。
1097 0
.NET数据库编程求索之路--7.使用ADO.NET实现(工厂模式-实现多数据库切换)(2)
7.使用ADO.NET实现(工厂模式-实现多数据库切换)(2)     7.3 数据访问层工厂HomeShop.DALFactory      1 using System; 2 using System.
889 0
Netty:一个非阻塞的客户端/服务器框架
Netty:一个非阻塞的客户端/服务器框架 Netty是一个异步事件驱动的网络应用框架,为Java网络应用的开发带来了一些新活力。Netty由协议服务器和客户端所组成,可用于快速开发可维护的高性能软件。
1021 0
+关注
soledad_lhc
csdn博客:http://blog.csdn.net/lhc1105
508
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载