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

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

         其中,在客户端和服务端的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请求数据的时候,下面的东西可以继续,成功后回调。

时间: 2024-09-22 10:44:49

.Net网络编程——服务端获取客户端连接的相关文章

vs2008-VS2008 编译之后的服务端与客户端连接总是报错,是什么原因啊?

问题描述 VS2008 编译之后的服务端与客户端连接总是报错,是什么原因啊? 解决方案 只要你的程序有错,都会出现类似这样的错误报告.你得结合调试器和源代码才能知道是什么问题.这么问问不出结果的.好比你去医院看病,你说你哪里不舒服,医生都是建议你先化验拍片再说,没有谁一听说你不舒服马上就知道你什么病了,那是老中医. 解决方案二: 仔细检查下指针,有没有哪处是空指针或是错的指针 解决方案三: 出错后,点击调试程序,查看一下错误的callstack.

ASP.NET能否在服务端获取客户端的域登录名,客户端和服务端在同一个域内

问题描述 ASP.NET能否在服务端获取客户端的域登录名,客户端和服务端在同一个域内 解决方案

https双向认证,如何在服务端获取当前请求的客户端证书id

问题描述 RT,在https双向认证的环境下,服务端配置了客户端证书的可信任证书列表,每个客户,一个独立的客户端证书.那么当一个请求到达服务端后,在服务端的代码中,如何来获取当前请求的客户端证书是哪一个?高人可以结合某个特定的容器配置来说明,万分感谢 解决方案 X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");双向认证之后

android网络编程:URL获取数据和图片

首先,开始最简单的网络编程实战,URL实现网络连接,不懂的童鞋可以参考JAVA中的URL编程,其原理是 一样的,在这里不再多做解释. 直接贴出实现源代码: public class DataActivity extends Activity { private EditText imagePathText; private static final String TAG="DataActivity"; private ImageView imageView; @Override pub

asp.net代码部署与服务端获取数据示例

我准备写一个ztree使用系列的教程基于asp.net的,希望能坚持下去. 本教程基于一个city.xml的全国数据文件,大家可以到这里下载. 1.Ztree介绍   zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点.     zTree 是开源免费的软件(MIT 许可证).如果您对 zTree 感兴趣或者愿意资助 zTree 继续发展下去,可以进行捐助. zTree v3.0 将核心代码按照功能进行了分割,

AJAX从服务端获取数据的三种方法

本文为原创,如需转载,请注明作者和出处,谢谢!     在本文中将给出一个例子来介绍使用AJAX技术从服务端获得数据的三种方法.这个例子很简单,就是两个选择框(html中的<select>标签),通过选中第一个select的某一项后,会从服务端得到一些数据,并加载到第2个select中. 方法一.从服务端获得XML格式的数据 从服务端获得数据的最容易想到的方法就是在服务端反加一定格式的数据,一般是XML格式,然后在服务端使用XMLDocument或其他技术来读取这些数据,并生成<sele

网络编程-java如何获取局域网内所有IP

问题描述 java如何获取局域网内所有IP 做个jframe小程序,在加载时将局域网内所有IP和主机名用流布局显示在窗体上! 解决方案 ?需要遍历局域网IP的,大体分为两步:: 1.得到局域网网段,可由自己机器的IP来确定 2.根据IP类型,一次遍历局域网内IP地址 我给你一个JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可 代码如下:package bean; import java.io.*; import java.util.*; public

Java服务端获取360token时候报错:Server returned HTTP response code: 400 for URL

问题描述 报错内容:Exceptioninthread"main"java.io.IOException:ServerreturnedHTTPresponsecode:400forURL:https://openapi.360.cn/oauth2/access_tokenatsun.net.www.protocol.http.HttpURLConnection.getInputStream(UnknownSource)atsun.net.www.protocol.https.Https

mina基础及服务端接口测试

最近接口测试的一个项目服务端是使用mina框架写的,顺便学习了下mina2.0.下面简单介绍下mina框架及测试相关的内容. 一.mina是什么 官方解释:Apache的Mina(Multipurpose Infrastructure Networked Applications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序:它提供了一个抽象的.事件驱动的异步API,使Java NIO在各种传输协议(如TCP/IP,UDP/IP协议等)下快速高效开发. 官网地址:http: