本文整理汇总了Golang中github.com/go-mangos/mangos.Socket类的典型用法代码示例。如果您正苦于以下问题:Golang Socket类的具体用法?Golang Socket怎么用?Golang Socket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Socket类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Dial
func Dial(sock mangos.Socket, url string) error {
if err := sock.Dial(url); err != nil {
s := fmt.Sprintf("socket.Dial: %s", err)
return errors.New(s)
}
return nil
}
开发者ID:ibmendoza,项目名称:msgq,代码行数:7,代码来源:msgq.go
示例2: recvName
func recvName(sock mangos.Socket, name string) {
var msg []byte
var err error
if msg, err = sock.Recv(); err == nil {
fmt.Printf("%s: RECEIVED: \"%s\"\n", name, string(msg))
}
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:7,代码来源:pair.go
示例3: Send
func Send(sock mangos.Socket, msg []byte) error {
if err := sock.Send(msg); err != nil {
s := fmt.Sprintf("socket.Send: %s", err)
return errors.New(s)
}
return nil
}
开发者ID:ibmendoza,项目名称:msgq,代码行数:7,代码来源:msgq.go
示例4: Listen
func Listen(sock mangos.Socket, url string) error {
if err := sock.Listen(url); err != nil {
s := fmt.Sprintf("socket.Listen: %s", err)
return errors.New(s)
}
return nil
}
开发者ID:ibmendoza,项目名称:msgq,代码行数:7,代码来源:msgq.go
示例5: send
func send(socket mangos.Socket, message string) {
log.Printf("Node %s sends %s\n", node, message)
err := socket.Send([]byte(message))
if err != nil {
log.Fatalf("Node %s failed to send '%s': %s\n", node, message, err.Error())
}
}
开发者ID:exu,项目名称:go-workshops,代码行数:7,代码来源:mangos.go
示例6: replyLoop
func replyLoop(sock mangos.Socket) {
if sendData == nil {
fatalf("No data to send!")
}
for {
msg, err := sock.RecvMsg()
switch err {
case mangos.ErrRecvTimeout:
return
case nil:
default:
fatalf("RecvMsg failed: %v", err)
}
printMsg(msg)
msg.Free()
msg = mangos.NewMessage(len(sendData))
msg.Body = append(msg.Body, sendData...)
err = sock.SendMsg(msg)
if err != nil {
fatalf("SendMsg failed: %v", err)
}
}
}
开发者ID:biocode,项目名称:mangos,代码行数:25,代码来源:macat.go
示例7: NewListener
func (t *inprocTran) NewListener(addr string, sock mangos.Socket) (mangos.PipeListener, error) {
if _, err := mangos.StripScheme(t, addr); err != nil {
return nil, err
}
l := &listener{addr: addr, proto: sock.GetProtocol()}
return l, nil
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:7,代码来源:inproc.go
示例8: publishEvt
func publishEvt(channel mangos.Socket, evt string) error {
if err := channel.Send([]byte(evt)); err != nil {
log.Debugf("fail to publish '%v' event:%v\n", evt, err)
return err
}
return nil
}
开发者ID:BenHall,项目名称:docker-slim,代码行数:8,代码来源:ipc.go
示例9: Receive
func Receive(sock mangos.Socket) (msg []byte, err error) {
msg, err = sock.Recv()
if err != nil {
s := fmt.Sprintf("socket.Recv: %s", err)
return nil, errors.New(s)
}
return msg, nil
}
开发者ID:ibmendoza,项目名称:msgq,代码行数:8,代码来源:msgq.go
示例10: sendRecv
func sendRecv(sock mangos.Socket, name string) {
for {
sock.SetOption(mangos.OptionRecvDeadline, 100*time.Millisecond)
recvName(sock, name)
time.Sleep(time.Second)
sendName(sock, name)
}
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:8,代码来源:pair.go
示例11: getEvt
func getEvt(channel mangos.Socket) (string, error) {
log.Debug("getEvt()")
evt, err := channel.Recv()
if err != nil {
return "", err
}
return string(evt), nil
}
开发者ID:BenHall,项目名称:docker-slim,代码行数:9,代码来源:ipc.go
示例12: receive
func receive(socket mangos.Socket) string {
bytes, err := socket.Recv()
if err != nil {
log.Fatalf("Node %s failed receiving a message: %s\n", node, err.Error())
}
message := string(bytes)
log.Printf("Node %s received %s\n", node, message)
return message
}
开发者ID:exu,项目名称:go-workshops,代码行数:10,代码来源:mangos.go
示例13: client
func client(url string, name string) {
var sock mangos.Socket
var err error
var msg []byte
if sock, err = respondent.NewSocket(); err != nil {
die("can't get new respondent socket: %s", err.Error())
}
sock.AddTransport(ipc.NewTransport())
sock.AddTransport(tcp.NewTransport())
if err = sock.Dial(url); err != nil {
die("can't dial on respondent socket: %s", err.Error())
}
for {
if msg, err = sock.Recv(); err != nil {
die("Cannot recv: %s", err.Error())
}
fmt.Printf("CLIENT(%s): RECEIVED \"%s\" SURVEY REQUEST\n",
name, string(msg))
d := date()
fmt.Printf("CLIENT(%s): SENDING DATE SURVEY RESPONSE\n", name)
if err = sock.Send([]byte(d)); err != nil {
die("Cannot send: %s", err.Error())
}
}
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:27,代码来源:survey.go
示例14: node0
func node0(url string) {
var sock mangos.Socket
var err error
var msg []byte
if sock, err = rep.NewSocket(); err != nil {
die("can't get new rep socket: %s", err)
}
sock.AddTransport(ipc.NewTransport())
sock.AddTransport(tcp.NewTransport())
if err = sock.Listen(url); err != nil {
die("can't listen on rep socket: %s", err.Error())
}
for {
// Could also use sock.RecvMsg to get header
msg, err = sock.Recv()
if string(msg) == "DATE" { // no need to terminate
fmt.Println("NODE0: RECEIVED DATE REQUEST")
d := date()
fmt.Printf("NODE0: SENDING DATE %s\n", d)
err = sock.Send([]byte(d))
if err != nil {
die("can't send reply: %s", err.Error())
}
}
}
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:26,代码来源:reqrep.go
示例15: client
func client(url string, name string) {
var sock mangos.Socket
var err error
var msg []byte
if sock, err = sub.NewSocket(); err != nil {
die("can't get new sub socket: %s", err.Error())
}
sock.AddTransport(ipc.NewTransport())
sock.AddTransport(tcp.NewTransport())
if err = sock.Dial(url); err != nil {
die("can't dial on sub socket: %s", err.Error())
}
// Empty byte array effectively subscribes to everything
err = sock.SetOption(mangos.OptionSubscribe, []byte(""))
if err != nil {
die("cannot subscribe: %s", err.Error())
}
for {
if msg, err = sock.Recv(); err != nil {
die("Cannot recv: %s", err.Error())
}
fmt.Printf("CLIENT(%s): RECEIVED %s\n", name, string(msg))
}
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:25,代码来源:pubsub.go
示例16: NewListener
func (t wsTran) NewListener(addr string, sock mangos.Socket) (mangos.PipeListener, error) {
proto := sock.GetProtocol()
l, e := t.listener(addr, proto)
if e == nil {
if v, e := sock.GetOption(mangos.OptionMaxRecvSize); e == nil {
l.maxrx = v.(int)
}
l.mux.Handle(l.url.Path, l)
}
return l, e
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:11,代码来源:ws.go
示例17: node0
func node0(url string) {
var sock mangos.Socket
var err error
if sock, err = pair.NewSocket(); err != nil {
die("can't get new pair socket: %s", err)
}
sock.AddTransport(ipc.NewTransport())
sock.AddTransport(tcp.NewTransport())
if err = sock.Listen(url); err != nil {
die("can't listen on pair socket: %s", err.Error())
}
sendRecv(sock, "node0")
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:13,代码来源:pair.go
示例18: NewDialer
func (wsTran) NewDialer(addr string, sock mangos.Socket) (mangos.PipeDialer, error) {
iswss := strings.HasPrefix(addr, "wss://")
opts := make(map[string]interface{})
opts[mangos.OptionNoDelay] = true
opts[mangos.OptionKeepAlive] = true
proto := sock.GetProtocol()
maxrx := 0
if v, e := sock.GetOption(mangos.OptionMaxRecvSize); e == nil {
maxrx = v.(int)
}
return &dialer{addr: addr, proto: proto, iswss: iswss, opts: opts, maxrx: maxrx}, nil
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:14,代码来源:ws.go
示例19: recvLoop
func recvLoop(sock mangos.Socket) {
for {
msg, err := sock.RecvMsg()
switch err {
case mangos.ErrProtoState:
return
case mangos.ErrRecvTimeout:
return
case nil:
default:
fatalf("RecvMsg failed: %v", err)
}
printMsg(msg)
msg.Free()
}
}
开发者ID:biocode,项目名称:mangos,代码行数:16,代码来源:macat.go
示例20: simpleSend
func simpleSend(t *testing.T, tx mangos.Socket, wg *sync.WaitGroup) {
var buf [256]byte
i := 0
for i = 0; i < 10000; i++ {
l := rand.Intn(255) + 1
buf[0] = uint8(l)
if e := tx.Send(buf[:l]); e != nil {
t.Fatalf("Send: %v", e)
break
}
}
t.Logf("Sent %d Msgs", i)
if e := tx.Close(); e != nil {
t.Fatalf("Tx Close: %v", e)
}
wg.Done()
}
开发者ID:laszlo-kiss,项目名称:mangos,代码行数:17,代码来源:simple_test.go
注:本文中的github.com/go-mangos/mangos.Socket类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论