代码拉取完成,页面将自动刷新
package client
import (
"fmt"
"net"
"reflect"
"gitee.com/ksbb/go-server/util"
)
type Handler func()
type Register struct {
}
type Client interface {
Conn()
}
type Opt map[string]Handler
var c Client
var defaultClient Client
func NewClient(ip string, port int, sType ...string) {
if len(sType) != 0 && sType[0] == "UDP" {
defaultClient = newTcpClient(ip, port)
}
defaultClient = newUdpClient(ip, port)
fmt.Println(defaultClient)
}
//默认的服务器
func GetClient() Client {
return defaultClient
}
//开始服务器
func Start() {
//反射调用
v := reflect.ValueOf(defaultClient)
v.MethodByName("Conn").Call(nil)
}
func On(event string, f Handler) {
c = GetClient()
util.RegisterOpts(event, f)
}
//发送到用户台
func ToConsole(str string) {
fmt.Println(str)
}
//发送到客户端
func Send(str string) {
v := reflect.ValueOf(defaultClient)
typev := v.Elem().FieldByName("Conns").Type().String()
//fmt.Println(typev)
var conn interface{}
if typev == "*net.UDPConn" {
conn = v.Elem().FieldByName("Conns").Interface().(*net.UDPConn)
addr := v.Elem().FieldByName("Add").Interface().(*net.UDPAddr)
v.MethodByName("Send").Call([]reflect.Value{
reflect.ValueOf(conn),
reflect.ValueOf(addr),
reflect.ValueOf(str),
})
} else {
conn = v.Elem().FieldByName("Conns").Interface().(net.Conn)
v.MethodByName("Send").Call([]reflect.Value{
reflect.ValueOf(conn),
reflect.ValueOf(str),
})
}
//fmt.Println(conn)
////获取最新那条连接
}
//接受服务器信息
func Recv() {
v := reflect.ValueOf(defaultClient)
typev := reflect.ValueOf(defaultClient).Elem().FieldByName("Conns").Type().String()
var conn interface{}
if typev == "*net.UDPConn" {
conn = v.Elem().FieldByName("Conns").Interface().(*net.UDPConn)
} else {
conn = v.Elem().FieldByName("Conns").Interface().(net.Conn)
}
//fmt.Println(conn)
////获取最新那条连接
v.MethodByName("Recv").Call([]reflect.Value{
reflect.ValueOf(conn),
})
}
func Do(e string) bool {
opt, ok := util.OptsT[e] //看有没有注册发送方法
if ok {
opt()
return true
}
return false
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。