草庐IT

system.net.sockets

全部标签

url - 使用 net/url 内置包解析带有矩阵参数的 URL

似乎URL不支持matrixparameters//Fromnet/urltypeURLstruct{SchemestringOpaquestring//encodedopaquedataUser*Userinfo//usernameandpasswordinformationHoststring//hostorhost:portPathstringRawQuerystring//encodedqueryvalues,without'?'Fragmentstring//fragmentforreferences,without'#'}为什么?如何从URL中提取矩阵参数?我什么时候应该使

tcp - Golang 写 net.Dial 响应给浏览器

我正在玩网络包,我想做一个简单的代理。首先我在本地主机上创建一个监听器,然后我调用远程地址remote,err:=net.Dial("tcp","google.com:80")iferr!=nil{log.Fatal(err)}deferremote.Close()fmt.Fprint(remote,"GET/HTTP/1.0\r\n\r\n")如何通过管道将响应传递给浏览器?还是我需要使用默认网络服务器并复制响应正文?很想用netpackage什么的试试谢谢 最佳答案 要从远程复制连接,使用2个带有io.Copy的goroutin

sockets - 限制连接到网络服务的客户端数量

如何限制连接到我的服务的客户端数量?我尝试了一个简单的计数器,但是如果客户端没有关闭就退出了他们的联系我不知道怎么弄的。请有人给我一些想法以便得到它吗?constMAX_CLIENTS=5varConnectedClientsintfuncmain(){ConnectedClients=0server,err:=net.Listen(CONN_TYPE,net.JoinHostPort(CONN_HOST,CONN_PORT))iferr!=nil{fmt.Println("ErrorListening",err.Error())os.Exit(1)}deferserver.Close

go - 捕获传递给 http.Server.Serve 的 net.Listener

我想通过执行正常关闭和我将在我的HTTP服务中共享的其他一些小工具来扩展http.Server功能。目前我的代码或多或少说:typeMyServerstruct{server*http.Server//...}func(s*MyServer)ListenAndServe(){//Createlistenerandpasstos.server.Serve()}这很有效很好,但是需要手动公开http.Server的所有必要方法和变量。包装大多数方法不会是一个大问题,但我无法找到一种明智的方法来公开对http.Server.ListenAndServeTLS的访问,而无需实际从thesour

go - 使用 golang socketio 包计算房间中的 socket 数量

在Golang中如何计算一个房间内的socket数量。在nodejs中使用socketioappearsyoucandothis:io.of('/chat').sockets.length你如何对socketiolibrary做同样的事情?对于Golang? 最佳答案 你基本上不能。API中没有接受房间并返回socket数量的方法。在projectgithubpage上发布功能请求. 关于go-使用golangsocketio包计算房间中的socket数量,我们在StackOverflo

sockets - 去写套接字 - 无效参数

我试图在Go中写入一个TCP套接字,但只收到带有此代码的“无效参数”:_,err:=conn.Write([]byte("test"))iferr!=nil{fmt.Println(err.Error())} 最佳答案 这是一个简单的例子,说明你想做什么(也许?),请注意你应该让tcp服务器在运行之前先监听端口8999nc-l8999#ormaybenc-l-p8999代码:packagemainimport("net")funcmain(){conn,_:=net.Dial("tcp","localhost:8999")conn.

go - 无法使用自制软件安装编译在 OS X 上导入 net/http 的程序

我已经在我的OSX10.10机器上安装了gousingHomebrew。每次我尝试编译导入net/http的示例应用程序时,我都会收到以下错误:loadcmd/cgo:packagecmd/cgo:noGosourcefilesin/Users/bbaron/google_appengine/goroot/src/cmd/cgo我的GOPATH变量设置正确($HOME/go)并且我的目录结构看起来是正确的:/Users/bbaron/go/src/github.com/einsteinx2/gamenotifier/Users/bbaron/go/src/github.com/eins

调用 Go RPC TCP 服务时 Ruby Socket 客户端挂起

我有一个用Go编写的工作RPCTCP服务,但是当使用Ruby连接到服务时它挂起,因为似乎没有数据通过打开的套接字连接发回。远程RPC函数:packageremoteimport"fmt"//ComposeisourRPCfunctionsreturntypetypeComposestring//DetailsisourexposedRPCfunctionfunc(c*Compose)Details(argstring,reply*string)error{fmt.Printf("Argreceived:%+v\n",arg)*c="somevalue"*reply="Blah!"ret

sockets - UDP 代理,如何维护/重用/清除连接的客户端池?

我正在创建一个UDP-proxy在go,但在使用iperf进行一些负载测试时,我开始收到此错误:socket:toomanyopenfiles经过搜索和测试,我发现如果我使用map创建一个池打开连接是关键*net.UDPAddr.String()value是UDP-proxy的一个实例包含*net.UDPConn,如果客户端地址相同,我可以重用现有连接:varclientsmap[string]*UDPProxy.UDPProxy=make(map[string]*UDPProxy.UDPProxy)这blockcode看起来像://waitforconnectionsfor{n,cl

go - 是否可以从 Go 'DNSError' 包访问嵌入在 'OpError' 结构中的 'net' 结构的字段?

我在Go中启动一个SSH客户端连接,我试图在返回错误时访问详细的错误数据。我目前正在使用这段代码:client,err:=ssh.Dial("tcp","unknownserver:22",config)iferr!=nil{ifoerr,ok:=err.(*net.OpError);ok{a:=oerr.Errfmt.Printf("%#v\n",a)}log.Fatal("Failedtodial:"+err.Error())}返回这两行错误数据:&net.DNSError{Err:"nosuchhost",Name:"unknownserver",Server:"",IsTime