分享
golang和unity3d进行通信绘图。。。
大洋的顶端 · · 2726 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
一般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;
}
然后编写两个线程,一个接受,一个发送,收到的参数进行游戏或者程序绘图。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2726 次点击
下一篇:Go切片内容丢失问题
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
一般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;
}
然后编写两个线程,一个接受,一个发送,收到的参数进行游戏或者程序绘图。