草庐IT

TCP流提取

全部标签

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/

cookies - 尝试登录 Amazon.com 以提取数据,但得到启用 Cookies 响应(使用 Go)

我正在尝试使用Go登录我在Amazon上的帐户以自动提取一些信息,但我无法登录,因为它提示cookie。这是我使用的代码的净化版本:packagemainimport("bytes""io/ioutil""net/http""net/http/cookiejar""net/url""strconv")funcCheckThis(AmazonUsernamestring,AmazonPasswordstring)error{varLogonURLstring//SettheurlLogonURL="https://www.amazon.com/ap/signin"//Craftsomef

go - TCP `net.Conn.Read` 在使用 `encoding/gob` 解码器后挂起

我可以用encoding/goben/decoder包裹TCPnet.Conn的末端,并通过它成功地en/decode一个值,但是如果我遵循在卡在Read上的原始连接上使用Read进行Decode:packagemainimport("encoding/gob""net""log""sync")funcmain(){varwgsync.WaitGroupaddr:=&net.TCPAddr{IP:net.ParseIP("127.0.0.1"),Port:9000}ready:=make(chanstruct{})wg.Add(1)gofunc(){deferwg.Done()ln,e

go - 接受与接受 TCP

有人能解释一下为什么Go的net包有func(l*TCPListener)Accept()(Conn,error)和func(l*TCPListener)AcceptTCP()(*TCPConn,error)而TCPConn是吗?typeTCPConnstruct{conn}以上来自tcpsock_posix.go。拥有一个返回*TCPConn的函数比Conn有什么优势? 最佳答案 答案很简单,net.Conn类型是一个接口(interface),net.TCPListener类型是一个实现net.Conn接口(interface)

c++ - 建立P2P TCP/UDP连接(NAT穿越)

有没有办法在没有中间服务器的情况下通过TCP或UDP建立真正的P2P通信?我知道如果两台计算机只有公共(public)IP地址,这是非常可行的,但如果它们位于任何类型的NAT路由器后面或在专用网络上,它就会开始变得棘手。.事实上,我越看越觉得平淡不可能。我发现了STUN、TURN和ICE协议(protocol)以及打洞,但据我所知,它们都需要某种服务器来至少建立连接。我很惊讶看似如此简单的事情似乎很难做到,我错过了什么吗?理想情况下,我正在寻找使用Golang的解决方案,任何帮助或C++中的示例也会很有用,谢谢。 最佳答案 这不是严

firebase - 如何在使用 Golang 推送 Firebase 后提取自动生成的唯一 ID?

我正在使用firego在firebase上进行操作。成功推送后,我无法检索自动生成的唯一ID。我使用了以下代码:adminData,err:=dB.Child("Admins").Push(m)iferr!=nil{log.Println(err)}log.Println("UniqueID:",adminData)并打印:https://myApp.firebaseio.com/Admins/-KddtEfpE3ys4cj0mYE-/.json变量adminData的类型为*Firebase但我只需要-KddtEfpE3ys4cj0mYE-作为String类型我如何使用firego在

sockets - 如何调试以下 Go 代码,它试图与 IP 地址和端口建立 TCP 连接?

我从Bittorrent跟踪器获取特定torrent文件的IP地址和端口号。它代表bittorrent网络上的对等点。我正在尝试使用此代码连接到对等方。连接总是超时(getsockopt:操作超时)。我想我在这里遗漏了一些非常基本的东西,因为我在python中尝试了相同的代码,结果完全相同,操作超时。它发生在每个对等IP地址上。我下载了这个BT客户端-https://github.com/jtakkala/tulva它能够使用这种类型的代码(第245行,peer.go)从我的系统连接到对等点。我还能够使用类似的代码连接到在本地主机上运行的tcp服务器。在JimB的评论和KennyGra

MySQL 到 JSON 不一致提取

我有一个包含6个表和大约200万行的MySQL数据库。我想将所有数据迁移到MongoDB。我决定通过将SQL表转换为JSON并将其导入MongoDB来实现此目的。我用Golang编写了一个程序来提取数据并将其输出为JSON。这是程序的主要功能:funcmain(){//Openadatabaseconnectionvarerrerrordb,err=sql.Open("mysql","root:password@tcp(127.0.0.1:3306)/employees")checkErr(err)//Checkifreachableiferr=db.Ping();err!=nil{l

regex - 是否可以在 Golang 中提取字符串的一部分并在一次操作中替换这些部分?

假设我想从一个字符串中提取所有数字(很可能使用正则表达式匹配)并且我还想用通用占位符(如“#”)替换这些数字匹配。这很容易分两部分完成,先使用FindAll,然后使用ReplaceAll。但是,我对执行此类操作的性能成本深表怀疑。所以取一个字符串"sdasd3.2%sadas6...+8.9"替换为"sdasd#%sadas#...+#"得到一片[3.2,6.0,8.9]以尽可能高效的方式。编辑:我实现了regexp.FindAllString+regexp.ReplaceAllString并且对我的应用程序的性能影响非常小。我希望有空时尝试ElliotChance的方法并比较两者。

parsing - 从 Go 中的多行输出中提取日期

请查看下面的netuse命令的输出。现在我想从这段文本中提取到期日期。不幸的是,netuse命令无法输出为json、xml或任何解析格式。因此,我坚持使用此文本:(。我只对获取10-6-20176:57:20并将其转换为Golang日期格式感兴趣。问题:我不知道如何开始?首先找到包含“密码过期”的行?然后呢?UsernamejdoeFullNameJohnDoeCommentUser'scommentCountrycode(null)AccountactiveYesAccountexpiresNeverPasswordlastset1-5-20176:57:20Passwordexpi