Tag: 网络

服务器推送与客户端拉取代理服务器拓扑

我需要创建一个包含2个组件的系统: 处理和存储数据的单个服务器。 它还定期向代理发送更新 安装在远程端点的多个代理程序。 这些数据收集(通常但不总是)长时间运行的数据,这些数据需要到达服务器 我正在使用C#.NET,理想情况下我想使用符合标准的通信方法(即可以与Java合作的方法,因为我们将来也可能使用Java代理)。 有没有Web服务的替代品? 我有什么选择? 我看到它的方式我有3个选项使用Web服务,并做了以下观察: 客户拉 代理不需要开放端口,因为它像客户端一样 需要轮询服务器以获取更新 服务器推送 在代理程序中打开端口,因为它充当服务器 服务器必须轮询代理以获取结果 混合动力 在代理程序中打开端口,因为它的作用类似于客户端和服务器 没有民意调查; 服务器在需要时推送更新,客户端在可用时发送结果 “混合”(代理商既是客户端又是服务器)似乎是明显的选择 – 但这个应用程序通常会安装在企业和政府环境中,我担心他们可能会遇到在代理商处打开端口的问题。我是住在这上面太多了? 我错过了其他任何利弊吗?

如何在连接网络时以及用户登录时接收事件

我有一个运行的服务,我希望在以下情况下收到通知: a)网络已连接。 b)当用户登录机器时。 我怎样才能做到这一点? (C#.NET 2.0)

validation可用网络连接的最简单方法是什么?

我对c#/ .net开发有点新手,但我已经为我公司的一小部分资产整理了一个股票跟踪应用程序。 我还设置了它在SQL 2000中连接的数据库。 当网络连接可用时,它目前工作得非常出色,但是当我远离连接时,我想扩展它以供使用。 首先,我需要知道是否有可用的连接。 所以我把它放在一起: private int availableNetAdapters() { int nicCount = 0; foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { if (nic.OperationalStatus == OperationalStatus.Up) { nicCount++; } } return nicCount; } 似乎工作,但我必须测试“> 1”,因为无论其他适配器状态如何,始终检测到“MS TCP Loopback接口”。 是否有更好/更简单的方法来检查连接? G

检查IP是否在LAN中(防火墙和路由器后面)

我现在已经在网上爬了大约5个小时,但找不到我的问题的解决方案: 我的公司正在开发一款教育游戏,我正在使用Monotorrent为它编写一个autoupdater。 该游戏将在学校中使用,但由于大多数学校只有非常弱的互联网连接,因此网络中只应有一台从httpseeder下载的计算机,而其他计算机应从从httpseed下载的一台计算机中获取。 因此,我从跟踪器获取大量IP地址,并且只需要过滤掉LAN中的IP地址。 当然,学校有时对防火墙非常严格,学校的某些计算机之间会有大量的路由器和交换机。 我已经尝试过大多数解决方案,比如 NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface iface in interfaces) { IPInterfaceProperties properties = iface.GetIPProperties(); foreach (UnicastIPAddressInformation address in properties.UnicastAddresses) { Console.WriteLine( “{0} (Mask: {1})”, address.Address, address.IPv4Mask ); } } 或者类似的技术只提供路由器/交换机/其他信息。 简而言之,我想要做的是检查是否可以通过LAN访问给定的IP。 我真的很感激任何帮助,因为这个function是剩下的最后一个:)

如何确定tcp是否已连接?

我有tcpclient对象,我想确定它是否连接。 我使用tcpclient的连接属性,但它返回上一次操作的状态。 所以没用。 那我用这个代码: bool flag; flag = (tcp.Client.Poll(10000, SelectMode.SelectWrite)); 和 if( tcp.Client.Poll( 0, SelectMode.SelectRead ) ) { byte[] buff = new byte[1]; if( tcp.Client.Receive( buff, SocketFlags.Peek ) == 0 ) { flag = false; } } 但它无法正常工作。 任何的想法? 这是我在服务器端的代码: private ArrayList _ClientList = new ArrayList(); public ClsServer(int port) { _TCPListener = new TcpListener(IPAddress.Any, port); […]

.net / C#中的网络

有人可以指点我学习如何在C#/ .net 3.5中进行网络连接吗? 欢迎提供代码示例和解释。 基本上我正在寻找如何做异步/multithreading服务器/客户端模型。 我对使用WinSock在C ++中完成此操作的基础知识非常满意,但我的所有研究似乎都无法在C#中掌握这一概念。 感谢您提供的任何帮助:)

c#文件读取并通过套接字发送

这是我使用NetworkStream发送文件的方式。 private void go() { byte[] send = File.ReadAllBytes(“example.txt”); ns.Write(send, 0, send.Length); } ns当然是一个NetworkStream 。 现在我想知道如何接收和读取传入的NetworkStream ? 我知道我需要指定一个缓冲区来读取这样的, ns.Read(buffer,0,buffer.length). 但哪个缓冲区应该在那里?

.NET中的网络发现

我需要获得一个连接到当前计算机的机器列表,就像资源管理器一样。 我想使用他们的名字来使用NetShareEnum检索他们的共享路径。

使用Polly时VS Debugger中报告的exceptionUser-Unhandled

在调用Pittney Bowes Geocoder服务时,我正在使用Polly来捕捉exception。 我正在使用一个抛出MessageProcessingException的g1client库。 如果抛出此exception,我已将调用包装在Polly网络策略中以重试调用最多3次,但Visual Studio坚持exception为“User-Unhandled”我需要修改哪些内容才能处理此exception? 我正在使用Visual Studio 2017社区版和C#4.6.1。 try { var networkPolicy = Policy .Handle() .Or() .WaitAndRetry( 3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (exception, timeSpan, context) => { System.Diagnostics.Debug.WriteLine(“Exception being retried” + exception); }); geocoderResponse = networkPolicy.Execute(() => geocoderService.Process(geocoderRequest)); } catch (MessageProcessingException ex) { log.Error(“MessageProcessingException calling the Geocoder service”, ex); throw ex; } catch (Exception […]

c#网络登录

如何在c#中以编程方式执行网络登录,访问共享驱动程序? 尝试通过资源管理器或net use shell命令打开共享可以实现同样的目的。