标签: networking

收听 1 个服务器上的 2 个端口

我正在尝试修改我的回声服务器程序以创建聊天客户端。目前,当我启动客户端时,我的服务器正在侦听端口。然后,客户端可以键入并向服务器发送消息,服务器将回显它。

但是,我希望能够将 2 个客户端连接到 2 个不同的端口,并让客户端通过服务器相互发送消息。有什么办法可以做到这一点吗?我假设第一步是监听 2 个端口而不是一个。

这是我到目前为止所拥有的。

服务器:

package main

import (
        "fmt"
        "log"
        "net"
)

func main() {
        fmt.Println("The server is listening on Port 3000")
        listener, _ := net.Listen("tcp", "localhost:3000")
        //listener2, _ := net.Listen("tcp", "localhost:8080")

        defer listener.Close()
        //defer listener2.Close()

        // Listen for connections
        for {
                conn, _ := listener.Accept()
                //conn2, _ := listener2.Accept()
                fmt.Println("New connection found!")

                go listenConnection(conn)
                //go listenConnection(conn2)
        }
}

//Listen for messages and reply
func listenConnection(conn net.Conn) {
        fmt.Println("Yay")
        for {
                buffer := make([]byte, …
Run Code Online (Sandbox Code Playgroud)

networking tcp chat go

0
推荐指数
1
解决办法
3384
查看次数

时间敏感网络

由于 CSMA-/CA/CD,我知道当前的以太网技术和它的非确定性行为。我还看到很多关于时间敏感网络的新闻。

谁能简要解释一下 TSN 如何改变或增强定时、同步,它与 IEEE 1588(PTP) 等有什么关系?

networking ethernet real-time

0
推荐指数
1
解决办法
1050
查看次数

使用dpkt解析pcap文件

我正在做一个任务,我必须解析一个 pcap 文件,我正在使用 dpkt 来做到这一点。我是网络新手,所以我很难调试代码/入门。

第一组代码:

import dpkt

filename='test.pcap'
f = open(filename)
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
    eth = dpkt.ethernet.Ethernet(buf)
    ip = eth.data
    tcp = ip.data

f.close()
Run Code Online (Sandbox Code Playgroud)

错误是 AttributeError: 'str' 对象没有属性 'data'

因此,从之前的 Stackoverflow 中,我发现也许我应该“跳过 dpkt 以太网解码并直接跳转到 IP 解码”,因此我更改了代码并转到:

import dpkt

filename='test.pcap'

f = open(filename)
pcap = dpkt.pcap.Reader(f)

for ts,buf in pcap:
    ip = dpkt.ip.IP(buf)
    tcp = ip.data

f.close()
Run Code Online (Sandbox Code Playgroud)

它现在给我的错误是“UnpackError: invalid header length”

不太明白如何继续前进,任何帮助将不胜感激

python networking pcap python-2.7 dpkt

0
推荐指数
1
解决办法
5321
查看次数

CIDR 与有类子网划分

我正在研究使用子网划分和无类寻址的有类寻址,但我无法清楚地理解它们两者之间的区别/优势。

假设我有一家公司只需要 32 个公共 IP 地址,我可以给他们一个带有 27 位子网的 C 类地址。同样,我可以给他们一个 CIDR 子网来实现相同的结果。

|What is my advantage in using CIDR?

| Why was CIDR required even after subnetting can achieve the same result?

| Shortcomings of subnetting with classful addresses.

提前致谢。

networking subnet cidr

0
推荐指数
1
解决办法
1128
查看次数

如何从外面ping我的家用电脑?

我正在尝试围绕网络和互联网。这是一个非常大的主题,我的目标不是了解所有内容。但是,我想知道如何将它用于……东西……现在意味着我想找到一台特定的计算机。我要去买家里的电脑。我知道在网上查找内容时 IP 地址是 alpha 和 omega,所以我通过在谷歌中输入“我的 ip”来查找它。到现在为止还挺好。

但是,根据谷歌的说法,我在连接到同一个无线路由器的手机上做了同样的事情,瞧,它具有相同的 IP 地址。所以,如果我在不同的计算机上,在不同的网络上,并且我尝试 ping 那个 IP 地址,我最好的办法是我会到达那个无线路由器,就是这样(我已经检查了路由器设置确实也是我路由器的 IP 地址)。如何ping从互联网上的其他地方发送 ping(例如,在 linux 或 windows 上使用 sommand ),并专门找到我的计算机,而不仅仅是控制我的家庭网络的路由器?

networking

0
推荐指数
1
解决办法
1万
查看次数

Azure 功能如何配置站点到站点连接?

我想为 Azure Functions 应用程序配置站点到站点连接。是否可以?如果是,如何?

networking azure azure-virtual-network azure-functions

0
推荐指数
1
解决办法
2717
查看次数

使用 ansible 通过 SSH 连接时获取当前使用的公共 IP/主机

我有一个与此类似的ansiblehost文件(称为my_host_file):

[my_group_name]
MY_PUBLIC_IP_FOR_VM_XYZ
Run Code Online (Sandbox Code Playgroud)

然后我在my_playbook.yml类似于此的 YAML 剧本(称为)中尝试了几种不同的方法:

---
- hosts: my_group_name
  sudo: yes
  tasks:
  - debug: var=hostvars
  - setup:
    register: allfacts
  - debug: var=allfacts
  - debug: var=ansible_default_ipv4.address
  - debug: var=ansible_hostname
  - command: bash -c "dig +short myip.opendns.com @resolver1.opendns.com"
    register: my_public_ip_as_ansible_var
Run Code Online (Sandbox Code Playgroud)

我像这样运行一切: ansible-playbook -v -i my_host_file my_playbook.yml

我想在运行时以不同于使用命令然后将其存储到变量中的方式获取my_host_file文件 ( MY_PUBLIC_IP_FOR_VM_XYZ)的公共 IP 地址。digopendnsmy_public_ip_as_ansible_var

毕竟这个已经被ansible自己用来建立SSH会话了,所以可能会存放在某个地方。

我也找不到此信息:

  • hostvars(实际上在这里我可以在这里找到它,但我也可以看到所有其他主机,所以我无法从主机组中识别当前的 SSH 会话)
  • allfacts(using setup: [...]) 变量中(只有专用网络中的 …

ssh networking ansible

0
推荐指数
1
解决办法
4935
查看次数

Docker Container 无法访问 localhost 端口 4444。为什么?

我容器化了一个应用程序,它是自动化 Selenium 测试的测试驱动程序。Selenium 服务器(也称为 Selenium Hub)在另一个容器以及 Firefox 节点中运行,位于 localhost:4444 下。但我的应用程序无法访问它:

Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '10d3b5fd1010', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-4-amd64', java.version: '1.8.0_11            1'
Driver info: driver.version: RemoteWebDriver
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158)
        at de.services.impl.TestSetupFactory.getWebDriver(TestSetupFactory.java:408)
        at de.services.impl.TestSetupFactory.getSeleniumService(TestSetupFactory.java:279)
        at de.services.impl.AutomationServiceImpl.executeTests(AutomationServiceImpl.java:220)
        at de.start.Start.main(Start.java:25)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:4444 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: C            onnection refused (Connection refused)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
Run Code Online (Sandbox Code Playgroud)

我通过 docker-compose 启动了这些容器:

version: '2'
services:
  hub:
    image: selgrid:1.1 …
Run Code Online (Sandbox Code Playgroud)

networking selenium communication vagrant docker

0
推荐指数
1
解决办法
5354
查看次数

在 Unity PUN (C#) 中向所有客户端发送消息

这是一个愚蠢的问题,但我无法弄清楚,我尝试查看它,但没有什么是我想要的,所以我认为询问可能是一个好方法。在我的游戏中,我希望客户端能够向房间中的每个人发送消息(不是为用户发送的消息,如果不是为其他客户端解释为代码):

“(用户1):每个人有多少分?”

“(用户 2):嘿,我得了 5 分”

“(用户 3):嘿,我得了 10 分”

“(用户1):时间到了,说说你的观点:”

“(用户 2):嘿,我得了 20 分”

“(用户 3):嘿,我得了 30 分”

“(用户 1):用户 3 赢了”

当然,这更像是一个图形示例,我想要的是能够向所有客户端(在房间内)发送消息,以便其他客户端可以处理 tjem。我想知道怎么做,以及这是否是一个可能的低谷 PUN​​(Unity Photon Network)。或者,如果有其他方法可以通过 UnityNetworking 执行此操作。此外,这将通过 LAN 而不是通过 Internet。

先谢谢了。

c# networking unity-game-engine photon unity5

0
推荐指数
1
解决办法
3395
查看次数

0% [连接到 in.archive.ubuntu.com 需要很长时间

每当我运行必须连接到 archive.ubuntu.com 的命令时,该命令需要很长时间才能完成它的任务。

sudo apt install oracle-java8-installer -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  gsfonts-x11 java-common oracle-java8-set-default
Suggested packages:
  binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho
  | ttf-sazanami-mincho ttf-arphic-uming
The following NEW packages will be installed:
  gsfonts-x11 java-common oracle-java8-installer oracle-java8-set-default
0 upgraded, 4 newly installed, 0 to remove and 29 not upgraded.
Need to get 54.7 kB of archives.
After this operation, 272 kB …
Run Code Online (Sandbox Code Playgroud)

ubuntu networking

0
推荐指数
1
解决办法
1万
查看次数