草庐IT

is_net_socket

全部标签

go - 使用 net/http 将结构值存储在每个请求 Golang 中

我是Golang的新手,我正在测试net/http以运行一些路径,但我遇到了一些我不明白的问题。这是我的代码。packagemainimport("fmt""net/http")typeContentstruct{Datamap[interface{}]interface{}}funcmain(){mux:=http.NewServeMux()mux.Handle("/favicon.ico",http.NotFoundHandler())mux.HandleFunc("/",Index)mux.HandleFunc("/test",Testhandler)http.ListenAnd

sockets - 如何为 Go 中写入的每个连接发送单独的数据包?

问题我想运行一个每秒有大量请求的负载测试。我在Go中编写了一个套接字发送器和一个接收器。发送方向端口7357发送大量数据包,每个数据包都包含以纳秒为单位的当前时间。接收方在端口7357上监听并解析每条消息,计算延迟。问题是在读取时我在一个conn.Read()中得到了多个数据包。我知道这意味着我实际上每个数据包发送多条消息:每个conn.Write()不发送套接字数据包,但它等待一段时间然后与下一个合并(或接下来的几个)在发送之前。问题如何确保每个conn.Write()都作为单独的数据包通过套接字单独发送?注意:我不想重新发明TCP,我只想模拟来自多个外部实体的负载,每个实体发送一条

sockets - Golang 将 gopacket udpLayer 转换为字节并发送

我正在使用gopacket/layersapi从数据包中提取更新数据,然后通过另一个udp流再次发送它,我不确定这样做是否正确,如果有人可以的话,我也会遇到一些错误给我指出正确的方向,那太好了我的代码conn,err:=net.Dial("udp",1.1.1.1)udp,_:=updpLayer.(*layers.UDP)/*nowifisenditlikethis*/conn.Write(udp)/*igettheerrors:cannotuseudp(type*layers.UDP)astype[]byteinargumenttoconn.Write*//*Itriedtocon

go - 从 net/html 标记器获取流中的当前位置

我想知道是否有办法使用golang.org/x/net/html分词器库获取标签的当前字符位置?简化后的代码如下:funcLookForForm(bodystring){reader:=strings.NewReader(body)tokenizer:=html.NewTokenizer(reader)idx:=0lastIdx:=0for{token:=tokenizer.Next()lastIdx=idxidx=int(reader.Size())-int(reader.Len())switchtoken{casehtml.ErrorToken:returncasehtml.Sta

sockets - UDP 套接字未从 Go 中的服务器读取

我正在开发一个快速的dns客户端,只是为了搞乱但是我在读取服务器响应时遇到了麻烦,因为它永远不会到达,我知道它确实做到了,因为我打开了WireShark,它读取了数据包。这是代码示例(8.8.8.8是GoogleDNS,十六进制消息是有效的DNS查询):packagemainimport("fmt""net""encoding/hex""bufio")funcCheckError(errerror){iferr!=nil{fmt.Println("Error:",err)}}funcmain(){Conn,err:=net.Dial("udp","8.8.8.8:53")CheckEr

http - go routine with net/http 使用 viper config 动态创建

我让viper在config.yml中提供以下值并在此处附加其余配置:servers:-projectname:testdirectory:D:\playgroud\testport:1029-projectname:test1directory:D:\playground\test1port:1030Coniguration.go包含packageconfigimport()typeConfigurationstruct{Servers[]ServerConfiguration}packagemainimport("config""github.com/spf13/viper""lo

go - 在 net/http golang 中链接中间件

我正在尝试向授权中间件添加上下文。ContextHandler是一个处理程序,它将传递给api处理程序以处理连接和配置变量。结构方法ServeHTTP也被添加到ContextHandler中,以便它满足net/Http接口(interface)以正确处理请求。CheckAuth是接受检查token验证等请求的中间件,如果token有效,则执行ServeHTTP方法,如果无效,则在响应中返回适当的错误。代码可以编译,但我在ServeHTTP方法中遇到错误。typeContextHandlerstruct{*AppContextHandlerfunc(*AppContext,http.Re

sockets - golang的net.Conn.Read怎么读到什么时候停止?

我正在尝试编写一个简单的基于套接字的围棋服务器。我只是想知道connection.Readbelow知道什么时候停止阅读。(注意:这不是我的代码,我是从UnixSocketsinGo复制过来的)packagemainimport("log""net")funcechoServer(cnet.Conn){for{buf:=make([]byte,512)nr,err:=c.Read(buf)iferr!=nil{return}data:=buf[0:nr]println("Servergot:",string(data))_,err=c.Write(data)iferr!=nil{log

go - net.Listen 和 http.ListenAndServe 功能的区别

我是Go和网络的新手。我知道net.Listen和http.ListenAndServe都创建了一个服务器。但它们的功能有什么区别? 最佳答案 基本上,作为documentation对于net.Listen说:网络必须是“tcp”、“tcp4”、“tcp6”、“unix”或“unixpacket”。虽然http.ListenAndServe创建了一个HTTP服务器。 关于go-net.Listen和http.ListenAndServe功能的区别,我们在StackOverflow上找到一

http - 如何将 net/http.ResponseWriter 转换为 net/http.Response

首先,我故意错误地问了这个问题,希望网络搜索引擎能更好地理解我的问题。更准确的问题是:如果我捕获了对自定义net/http.ResponseWriter的所有调用,如何将传递给它的值存储到[]byte缓冲区中,如何将其转换为net/http.Response?我相信答案就在net/http.ReadResponse()中,但我不确定如何正确呈现响应以便ReadResponse理解。 最佳答案 net/http/httptest包有一个ResponseRecorder,可以将ResponseWriter转换为Response。如果您捕