一般GO语言是来写服务器,主要是省事线程的编写的过程。
和UNITY3D来进行通信
主要代码
func main() {
Addr, _ := net.ResolveTCPAddr("tcp4", ":6000")
listener, err := net.ListenTCP("tcp", Addr)
if err != nil {
fmt.Fprintf(os.Stderr, "错误: %s", err.Error())
os.Exit(1)
}
for {
conn, err := listener.Accept()
if err != nil {
continue
}
go handleClient(conn)
}
}
func handleClient(conn net.Conn) {
defer conn.Close()
var buf [128]byte
for {
n, err := conn.Read(buf[0:])
if err != nil {
return
}
rAddr := conn.RemoteAddr()
fmt.Println("接受的消息:", rAddr.String(), string(buf[0:n]))
_, err2 := conn.Write([]byte("6*0.5"))
if err2 != nil {
return
}
}
}
在u3d中有编写代码来接受收到的参数:
ClientSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string ip = GetIP ().ToString ();//服务器ip
Debug.Log (ip);
IPAddress ipa = IPAddress.Parse (ip);
IPEndPoint iep = new IPEndPoint (ipa, 6000);
try {
ClientSocket.Connect (iep);//连接到服务器
thread = new Thread (new ThreadStart (ClientReceive));
thread.Start ();
} catch (Exception ex) {
Debug.Log (ex.Message);
clientReceiveValue = ex.Message;
}
然后编写两个线程,一个接受,一个发送,收到的参数进行游戏或者程序绘图。
有疑问加站长微信联系(非本文作者)