mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
49 lines
782 B
Go
49 lines
782 B
Go
package network
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/golang/protobuf/proto"
|
|
"net"
|
|
)
|
|
|
|
type TcpSocketClient struct {
|
|
conn net.Conn
|
|
addr string
|
|
}
|
|
|
|
func (slf *TcpSocketClient) Connect(addr string) error{
|
|
tcpAddr,terr := net.ResolveTCPAddr("tcp",addr)
|
|
if terr != nil {
|
|
return terr
|
|
}
|
|
|
|
conn,err := net.DialTCP("tcp",nil,tcpAddr)
|
|
if err!=nil {
|
|
fmt.Println("Client connect error ! " + err.Error())
|
|
return err
|
|
}
|
|
slf.conn = conn
|
|
slf.addr = addr
|
|
|
|
//
|
|
return nil
|
|
}
|
|
|
|
func (slf *TcpSocketClient) SendMsg(packtype uint16,message proto.Message) error{
|
|
if slf.conn == nil {
|
|
return fmt.Errorf("cannt connect %s",slf.addr)
|
|
}
|
|
|
|
var msg MsgBasePack
|
|
data,err := proto.Marshal(message)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
msg.Make(packtype,data)
|
|
|
|
slf.conn.Write(msg.Bytes())
|
|
|
|
return nil
|
|
}
|