1234567891011121314151617181920212223242526272829303132 |
- //客户端封装
- package util
- import (
- "fmt"
- "net"
- "os"
- )
- //出错检测
- func checkError(err error) {
- if err != nil {
- fmt.Fprintf(os.Stderr, "出错了: %s", err.Error())
- os.Exit(1)
- }
- }
- //
- func StartClient(parseEvent func([]byte), serveraddr string) (*Writer, net.Conn) {
- tcpAddr, err := net.ResolveTCPAddr("tcp4", serveraddr)
- checkError(err)
- conn, err := net.DialTCP("tcp", nil, tcpAddr)
- checkError(err)
- w := NewWriter(conn)
- //接受消息
- messageQueue := make(chan RawData, 2000) //并发1000
- go processMsg(messageQueue, parseEvent)
- //从流中提取消息
- go forwardMessage(conn, messageQueue)
- return w, conn
- }
|