我正在尝试修改我的回声服务器程序以创建聊天客户端。目前,当我启动客户端时,我的服务器正在侦听端口。然后,客户端可以键入并向服务器发送消息,服务器将回显它。
但是,我希望能够将 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) 由于 CSMA-/CA/CD,我知道当前的以太网技术和它的非确定性行为。我还看到很多关于时间敏感网络的新闻。
谁能简要解释一下 TSN 如何改变或增强定时、同步,它与 IEEE 1588(PTP) 等有什么关系?
我正在做一个任务,我必须解析一个 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”
不太明白如何继续前进,任何帮助将不胜感激
我正在研究使用子网划分和无类寻址的有类寻址,但我无法清楚地理解它们两者之间的区别/优势。
假设我有一家公司只需要 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.
提前致谢。
我正在尝试围绕网络和互联网。这是一个非常大的主题,我的目标不是了解所有内容。但是,我想知道如何将它用于……东西……现在意味着我想找到一台特定的计算机。我要去买家里的电脑。我知道在网上查找内容时 IP 地址是 alpha 和 omega,所以我通过在谷歌中输入“我的 ip”来查找它。到现在为止还挺好。
但是,根据谷歌的说法,我在连接到同一个无线路由器的手机上做了同样的事情,瞧,它具有相同的 IP 地址。所以,如果我在不同的计算机上,在不同的网络上,并且我尝试 ping 那个 IP 地址,我最好的办法是我会到达那个无线路由器,就是这样(我已经检查了路由器设置确实也是我路由器的 IP 地址)。如何ping从互联网上的其他地方发送 ping(例如,在 linux 或 windows 上使用 sommand ),并专门找到我的计算机,而不仅仅是控制我的家庭网络的路由器?
我想为 Azure Functions 应用程序配置站点到站点连接。是否可以?如果是,如何?
我有一个与此类似的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: [...]) 变量中(只有专用网络中的 …我容器化了一个应用程序,它是自动化 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)这是一个愚蠢的问题,但我无法弄清楚,我尝试查看它,但没有什么是我想要的,所以我认为询问可能是一个好方法。在我的游戏中,我希望客户端能够向房间中的每个人发送消息(不是为用户发送的消息,如果不是为其他客户端解释为代码):
“(用户1):每个人有多少分?”
“(用户 2):嘿,我得了 5 分”
“(用户 3):嘿,我得了 10 分”
“(用户1):时间到了,说说你的观点:”
“(用户 2):嘿,我得了 20 分”
“(用户 3):嘿,我得了 30 分”
“(用户 1):用户 3 赢了”
当然,这更像是一个图形示例,我想要的是能够向所有客户端(在房间内)发送消息,以便其他客户端可以处理 tjem。我想知道怎么做,以及这是否是一个可能的低谷 PUN(Unity Photon Network)。或者,如果有其他方法可以通过 UnityNetworking 执行此操作。此外,这将通过 LAN 而不是通过 Internet。
先谢谢了。
每当我运行必须连接到 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)