Questions tagged «networking»

对于大多数编程问题,请使用[network-programming]标签。非编程网络问题不在主题之列,而应该在网络工程,超级用户或服务器故障上询问。该标签仅适用于有关支持软件开发的独特网络需求的问题。

3
protobuf与gRPC
我尝试了解protobuf和gRPC以及如何使用两者。您能帮我了解以下内容吗? 考虑到OSI模型,例如Protobuf在第4层在哪里? 通过消息传递来思考“流”是什么,gRPC在做protobuf遗漏的事情是什么? 如果发送者使用protobuf,则服务器可以使用gRPC还是gRPC添加仅gRPC客户端可以提供的内容? 如果gRPC可以使同步和异步通信成为可能,那么Protobuf仅用于编组,因此与状态无关-是对还是错? 我可以在通信的前端应用程序中使用gRPC而不是REST或GraphQL吗? 我已经知道-或假设我知道- 原虫 用于数据交换的二进制协议 由Google设计 在客户端和服务器上使用生成的“结构”(如描述)来取消/编组消息 gRPC 使用protobuf(v3) 再次来自Google RPC调用框架 也使用HTTP / 2 可以进行同步和异步通讯 对于已经使用该技术的人,我再次假定这是一个简单的问题。我仍然要感谢您对我耐心等待并帮助我。我也非常感谢网络对这些技术的深入研究。

27
如何检查ip是否在Python网络中?
给定一个IP地址(例如192.168.0.1),如何在Python中检查它是否在网络中(例如192.168.0.0/24)? Python中是否有用于IP地址操作的通用工具?诸如主机查找,将IP地址添加到int,将网络地址与netmask转换为int之类的东西?希望可以在标准Python库中找到2.5。

12
给定程序使用哪个端口?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 改善这个问题 我希望能够弄清楚特定程序正在使用哪个端口。是否有任何在线可用程序或Windows附带的程​​序可以告诉我哪些进程正在使用计算机上的哪些端口? PS-在您对这不是编程问题进行下调之前,我正在寻找可以测试一些网络代码的程序。

12
我该如何杀死正在使用端口8080的任何进程,以便让我无所事事?
在MacOSX上,我使用Packer构建了一个Vagrant框,因此我需要不断地将其抬起并拆下。我正在尝试“无所事事”,并收到标准错误,因为该端口正在使用中: “ Vagrant无法转发此VM上的指定端口,因为它们将与已经在这些端口上侦听的某些其他应用程序发生冲突。转发到8080的端口已在主机上使用。” 解决方案看起来很简单:我只需要确定将8080端口保持打开状态的进程并杀死该进程,对吗?它不是那么容易。 如果我运行命令: nmap localhost -p 8080 我收到以下输出: PORT STATE SERVICE 8080/tcp open http-proxy 如果我运行以下命令: top -o prt 1360年使用的最高端口 如果我运行以下命令: netstat -tulpn | grep :8080 我收到: netstat: n: unknown or uninstrumented protocol 如果我运行以下命令: lsof -i :8080 我没有输出 如果重新启动计算机,则该端口现在可用,并且现在可以“无所事事”了。 如何杀死使用端口8080的任何进程,以便无需重新启动计算机就可以无所事事?

13
视频流上的TCP与UDP
我刚从网络编程考试中回来,他们问我们的一个问题是“如果要流式传输视频,您将使用TCP还是UDP?对存储的视频和实时视频流进行解释”。对于这个问题,他们只是希望对存储的视频使用TCP做出简短的回答,对实时视频使用UDP做出简短的回答,但是我在回家的路上就想到了这一点,并且使用UDP传输实时视频是否一定更好?我的意思是,如果您有足够的带宽,并且说您正在直播足球比赛或音乐会,那么您真的需要使用UDP吗? 可以说,在播放此音乐会或使用TCP的任何内容时,您开始丢失数据包(在您和发送方之间的某些网络中发生了一些不好的事情),并且一整分钟您都没有收到任何数据包。视频流将暂停,一分钟后,数据包将再次开始通过(IP为您找到了一条新路由)。然后将发生的情况是,TCP将在您丢失的那一刻重新传输并继续向您发送实时流。假设带宽高于流的比特率,并且ping不太高,因此在很短的时间内,您丢失的一分钟将为您充当流的缓冲区。 ,如果再次发生丢包,您将不会注意到。 现在,我可以想到一些不是一个好主意的设备,例如视频会议,您需要始终处于视频流的结尾,因为视频聊天过程中的延迟太可怕了,但是在足球比赛或音乐会中,如果您落后于直播,那又有什么关系呢?另外,可以确保您获得所有数据,并且最好保存起来以备以后查看,而不会出现任何错误。 因此,这使我想到了问题。使用TCP进行实时流传输是否有我不知道的缺点?还是真的应该这样,如果您有带宽,那么就应该使用TCP,因为它对网络“更小”(流控制)?


2
Twisted中Select / Poll与Epoll反应器的警告
我已经阅读和体验过的所有内容(基于Tornado的应用程序)使我相信ePoll可以自然替代基于Select和Poll的网络,尤其是Twisted。这让我感到偏执,对于一个更好的技术或方法学来说,这是很罕见的,而没有价格。 阅读epoll与替代方案之间的几十个比较结果,可以看出epoll显然是速度和可伸缩性的拥护者,特别是它以线性方式扩展,这太棒了。也就是说,关于处理器和内存利用率,epoll仍然是冠军吗?

5
如何在Vagrant中增加RAM并设置仅主机网络?
我想将RAM增加到至少1 GB,并且我想将“仅主机”网络配置为使用“ 199.188.44.20”。 这是我的Vagrantfile: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant::Config.run do |config| config.vm.customize ["modifyvm", :id, "--memory", 1024] config.vm.network :hostonly, "199.188.44.20" config.vm.define :web do |web_config| web_config.vm.box = "lucid32" web_config.vm.forward_port 80, 8080 web_config.vm.provision :puppet do |puppet| puppet.manifests_path = "manifests" puppet.manifest_file = "lucid32.pp" end end config.vm.define :web2 do …


15
如何获得Linux / UNIX上的当前网络接口吞吐量统计信息?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 诸如MRTG之类的工具提供了特定接口(例如eth0)上当前网络利用率的网络吞吐量/带宽图。如何在Linux / UNIX上的命令行中返回该信息? 优选地,除了标准系统上没有可用的东西外,不需要安装其他东西。

12
获取机器的IP地址
此问题与先前询问的获取本地计算机的IP地址-问题几乎相同。但是我需要找到Linux机器的IP地址。 所以:我如何-以编程方式在C ++中 -检测运行我的应用程序的linux服务器的IP地址。这些服务器将至少具有两个IP地址,而我需要一个特定的IP地址(给定网络中的一个IP地址(公共地址))。 我敢肯定有一个简单的功能可以做到这一点-但在哪里? 为了使事情更清楚: 该服务器显然将具有“ localhost”:127.0.0.1 服务器将具有一个内部(管理)IP地址:172.16.xx 服务器将具有一个外部(公共)IP地址:80.190.xx 我需要找到外部IP地址以将我的应用程序绑定到该IP地址。显然,我也可以绑定到INADDR_ANY(实际上,这就是我目前所做的)。不过,我希望检测一下公共地址。

3
内部应用程序的最佳TCP端口号范围
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我在每个内部应用程序都在一个单独的Tomcat实例上运行并使用特定的TCP端口的地方工作。为了避免端口号与服务器上任何其他进程发生冲突,最适合这些应用程序使用的IANA端口范围是什么? 基于http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml,这些是我目前看到的选项: 系统端口(0-1023):我不想使用任何这些端口,因为服务器可能正在此范围内的标准端口上运行服务 用户端口(1024-49151):鉴于这些应用程序是内部的,因此我无意要求IANA为我们的任何应用程序保留一个号码。但是,我想减少另一个进程使用同一端口的可能性,例如1521年的Oracle Net Listener。 动态和/或专用端口(49152-65535):此范围是自定义端口号的理想选择。我唯一关心的是这是否会发生: 一个。我将我的一个应用程序配置为使用端口X b。该应用程序关闭了几分钟或几小时(取决于应用程序的性质),使端口闲置了一会儿, c。操作系统将端口号X分配给另一个进程,例如,当该进程充当需要与另一个服务器建立TCP连接的客户端时。假设它在动态范围内,并且就操作系统而言,X当前未使用,则成功 。该应用无法启动,因为端口X已被使用

7
获取运行python脚本的Windows计算机的名称?
基本上,我的网络上有几台Windows计算机,这些计算机将运行python脚本。脚本中应使用一组不同的配置选项,具体取决于运行此脚本的计算机。 如何在python脚本中获取该计算机名称? 假设脚本运行在名为DARK-TOWER的计算机上,我想编写如下代码: >>> python.library.get_computer_name() 'DARK-TOWER' 我可以使用标准库或第三方库吗?

8
Java套接字API:如何判断连接是否已关闭?
我遇到了Java套接字API的一些问题。我正在尝试显示当前连接到我的游戏的玩家数量。很容易确定播放器何时连接。但是,似乎似乎很难确定何时使用套接字API断开了播放器。 呼叫isConnected()已断开远程似乎总是返回一个插座上true。同样,调用isClosed()已远程关闭的套接字似乎总是会返回false。我读过要真正确定套接字是否已关闭,必须将数据写入输出流,并且必须捕获异常。这似乎是处理这种情况的一种非常不干净的方法。我们只需要不断地在网络上发送垃圾邮件来知道套接字何时关闭。 还有其他解决方案吗?

3
从Open ONVIF(网络视频接口论坛)设备录制的问题
我正在研究开放网络视频接口论坛Java项目,并按照《ONVIF应用程序程序员指南》中所述的步骤进行操作。 我已经从wsdlsONVIF网站中提供的来源生成了信息。我可以使用检索实时流URI media.wsdl。现在,我在录制方面遇到了问题。我尝试过的代码如下: RecordingService recording_ervice = new RecordingService(); RecordingPort record_port = recording_ervice.getRecordingPort(); BindingProvider bindingProvider = (BindingProvider) record_port; // Add a security handler for the credentials final Binding binding = bindingProvider.getBinding(); List<Handler> handlerList = binding.getHandlerChain(); if (handlerList == null) { handlerList = new ArrayList<Handler>(); } handlerList.add(new RecordStream.SecurityHandler()); // binding.setHandlerChain(handlerList); // Set …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.