草庐IT

number_of_sockets

全部标签

sockets - 为什么当我在许多 goroutine 中发送一个 tcp shake packet(SYN) 时,我在每个 goroutine 中读取了很多响应包

我正在构建一个端口扫描器来检查远程机器上的某个TCP端口是否打开。为了提高性能,我只是构建一个TCPSYN数据包并将其发送到远程端口,而不是进行完整的3次握手。如果我成功接收到SYN-ACK数据包,那么该端口将被视为打开。这是我的部分代码:conn,_:=net.Dial("ip4:tcp",target)tcpSynPacket:=BuildTcpSynPacket()//hereIbuildatcpsynpacketconn.Write(tcpSynPacket.Marshal())deadlineTime:=time.NewTicker(time.Second*2)deferde

go - 如何修复 `kafka: client has run out of available brokers to talk to (Is your cluster reachable?)` 错误

我正在开发一个应用程序,该应用程序从sqs队列中读取一条消息,对该数据执行一些操作,然后获取结果并将其发布到kafka主题。为了在本地进行测试,我想在我的docker构建中设置一个kafka图像。我目前能够使用docker-compose在本地启动aws-cli、localstack和我的应用程序的容器。另外,我也可以毫无问题地启动kafka和zookeper。我无法让我的应用程序与kafka通信。我试过使用两个单独的撰写文件,也尝试过网络。最后,我引用了:https://rmoff.net/2018/08/02/kafka-listeners-explained/。这是我的docke

go - 如何使用 go-git 查找 sha of origin/master?

我正在尝试使用go-git查找origin/master的SHA1,在我已经完成了与gitfetch--all等效的操作之后。然而,go-git似乎不支持:gitls-remotegit@github.com:StevenACoffman/toolbox.gitgitrev-parseorigin/master有没有其他方法可以使用go-git确定origin/master的SHA1? 最佳答案 糟糕!支持gitrev-parse!使用./main.go$PWDorigin/master执行以下命令:///usr/bin/envgo

sockets - 通过端口获取服务名称

我正在编写简单的网络扫描器,并坚持按端口号解析服务名称。最好的方法是什么?我认为它应该类似于python的socket.getservbyport()并创建了thislib,但不幸的是开发环境基于Windows,我也想要内置解决方案而不是解析器。packagemainimport("fmt""net""strings""sync""time")typePortScannerstruct{ipstring}funcScanPort(ipstring,portint,timeouttime.Duration){target:=fmt.Sprintf("%s:%d",ip,port)conn

高语 : Allocating Slice of Slices in functions results in index out of range

我一直在用Go尝试一些东西,但遇到了一个我无法解决的问题。packagemainimport"fmt"import"strconv"funcwriteHello(iint,){fmt.Printf("hello,world"+strconv.Itoa(i)+"\n")}typeSliceStructstruct{data[][]int;}func(sSliceStruct)New(){s.data=make([][]int,10);}func(sSliceStruct)AllocateSlice(iint){s.data[i]=make([]int,10);}func(sSliceSt

sockets - 如何找到 IP :Port of incoming client in TCP Connection

收到来自conn,err:=listener.Accept()的连接后,我想在conn的另一端找到客户端的地址。我已经尝试使用conn.LocalAddr()和conn.RemoteAddr()(Documentation)来执行此操作。.LocalAddr()只是给出服务器进程的地址。.RemoteAddr()为客户端提供了正确的IP,但与我所知道的客户端绑定(bind)的端口号截然不同。如果它有什么不同,我用在同一台机器上运行的两个独立进程来做这件事。一个是客户端,一个是服务器。关于如何找到客户端的正确IP:Port的任何想法?我是要使用LocalAddr还是RemoteAddr?

sockets - 没有可用的缓冲区空间(tcp.cpp :69) when setting SNDBUF and RCVBUF ZeroMQ, golang,MacOSX

我在MacOSX上使用brew安装了zeromq:stable4.1.4,并编写了一个简单的PUB/SUB程序来测试zeromq。但是当我使用标志--bufsize>5运行示例程序时(使用大小>5MB的缓冲区)(去运行go_zmq_pubsub.go--bufsize=6);它抛出以下异常:没有可用的缓冲区空间(tcp.cpp:69)SIGABRT:中止PC=0x7fff9911c286m=0cgo执行时信号到达下面是我用来测试zeromq4.x的程序packagemainimport("fmt""flag""strconv""sync"log"github.com/Sirupsen/

sockets - 如何读取在 Golang 中接收到的 UDP 数据报的输入接口(interface)和远程套接字地址?

PacketConn.ReadFrom()可以为输入接口(interface)提供包含ifIndex的ControlMessage。UDPConn.ReadFromUDP()返回带有数据报的源套接字地址(srcIP+srcPort)的net.UDPAddr。但是,如何同时获取两个信息:输入接口(interface)ifIndexAND远程套接字地址(srcIP+srcPort)?编辑:我已经填写了一个问题:https://github.com/golang/go/issues/14362 最佳答案 当底层套接字是UDP时,.Read

algorithm - Go lang : search x digits from sets of numbers, 为什么需要很长时间才能执行?

我尝试制作从一组数字中找到x个数字的小程序,例如:我想从中找到89个数字strong>1-1000000000。这是我的代码:https://play.golang.org/p/93yh_urX16packagemainimport("fmt""strconv")varbucketstringfuncmain(){findDigits(89,1000000000)}funcfindDigits(digitsint,lengthint){fori:=1;i有谁知道,我犯了什么错误?我需要一些建议来改进这段代码。谢谢:) 最佳答案 Yo

Golang时间错误: month out of range

这是我的代码:time.Parse(time.Now().String()[0:19],time.Now().String()[0:19])错误:parsingtime"2016-09-2016:50:08":monthoutofrange如何解析时间字符串? 最佳答案 第一个参数是布局,见:funcParse(layout,valuestring)(Time,error){returnparse(layout,value,UTC,Local)}文档://Parseparsesaformattedstringandreturnsth