golang 與unity socket 通信

1.golang 代碼:
////////////////////////////


TIM截圖20181005155919.png

package main

import (
"fmt"
"log"
"net"
"sync"
)

func main() {
var waitGroup = new(sync.WaitGroup)
waitGroup.Add(1)
addr := "0.0.0.0:666" //表示監(jiān)聽本地所有ip的8080端口,也可以這樣寫:addr := ":8080"
listener, err := net.Listen("tcp", addr) //使用協(xié)議是tcp菊霜,監(jiān)聽的地址是addr
if err != nil {
log.Fatal(err)
}
conn, err := listener.Accept() //用conn接收鏈接
if err!=nil {
return
}
go func() {
defer listener.Close() //關(guān)閉監(jiān)聽的端口
for {
buf := make([]byte, 1024)
ln,err_:=conn.Read(buf)
if err_!=nil {
break
}
fmt.Println(string(buf[:ln]))
if err != nil {
log.Fatal(err)
break
}
conn.Write([]byte("huhao\n")) //通過conn的wirte方法將這些數(shù)據(jù)返回給客戶端攘残。
}
waitGroup.Done()

}()
waitGroup.Wait()

}
////////////////////
2.unity 代碼:
![QV@R]UZNQ(MGMP%4~XX9S1O.png](https://upload-images.jianshu.io/upload_images/5395507-b36b60196d306517.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

自己create 一個sense 然后添加UI組件Text康愤,InputField 娜搂,Button 就可以進行測試了

using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;

public class login : MonoBehaviour
{
public string ipaddress = "127.0.0.1";
public int port = 666;
private Socket clientSocket;
public InputField MessageInput;
public Text MessageText;
private Thread thread;
private byte[] data = new byte[1024];// 數(shù)據(jù)容器
private string message = "";
public Button btn;

// Use this for initialization
void Start()
{
    ConnectToServer();
    btn.onClick.AddListener(OnSendButtonClick);
    thread = new Thread(ReceiveMessage);
    thread.Start();
}

// Update is called once per frame
void Update()
{
    //只有在主線程才能更新UI     
    if (message != "" && message != null)
    {
        MessageText.text += "\n" + message;
        message = "";
    }
}

/**     
 *連接服務器端函數(shù)   
 **/
void ConnectToServer()
{
    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);        //跟服務器連接     
    clientSocket.Connect(new IPEndPoint(IPAddress.Parse(ipaddress), port));        //客戶端開啟線程接收數(shù)據(jù)        thread = new Thread(ReceiveMessage);        thread.Start();    }
}

void ReceiveMessage()
{
    while (true)
    {
        if (clientSocket.Connected == false)
        { break; }
        int length = clientSocket.Receive(data);
        message = Encoding.UTF8.GetString(data, 0, length);
        print(message);
    }
}
new void SendMessage(string message)
{
    byte[] data = Encoding.UTF8.GetBytes(message);
    clientSocket.Send(data);
}
public void OnSendButtonClick()
{
    string value = MessageInput.text;
    SendMessage(value);
    MessageInput.text = " ";
}  
/**    
 * * unity自帶方法  
 * * 停止運行時會執(zhí)行   
 * * */
void OnDestroy()
{        
    //關(guān)閉連接贮匕,分接收功能和發(fā)送功能笼裳,both為兩者均關(guān)閉     
    clientSocket.Shutdown(SocketShutdown.Both);
    clientSocket.Close();
}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末属铁,一起剝皮案震驚了整個濱河市守呜,隨后出現(xiàn)的幾起案子型酥,更是在濱河造成了極大的恐慌,老刑警劉巖查乒,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弥喉,死亡現(xiàn)場離奇詭異,居然都是意外死亡玛迄,警方通過查閱死者的電腦和手機由境,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蓖议,“玉大人虏杰,你說我怎么就攤上這事±障海” “怎么了纺阔?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長修然。 經(jīng)常有香客問我笛钝,道長,這世上最難降的妖魔是什么低零? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任婆翔,我火速辦了婚禮拯杠,結(jié)果婚禮上掏婶,老公的妹妹穿的比我還像新娘。我一直安慰自己潭陪,他們只是感情好雄妥,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著依溯,像睡著了一般老厌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上黎炉,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天枝秤,我揣著相機與錄音,去河邊找鬼慷嗜。 笑死淀弹,一個胖子當著我的面吹牛丹壕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播薇溃,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼菌赖,長吁一口氣:“原來是場噩夢啊……” “哼瓣俯!你這毒婦竟也來了它掂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤俊啼,失蹤者是張志新(化名)和其女友劉穎策幼,沒想到半個月后邑时,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡特姐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年刁愿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片到逊。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡铣口,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出觉壶,到底是詐尸還是另有隱情脑题,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布铜靶,位于F島的核電站叔遂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏争剿。R本人自食惡果不足惜已艰,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚕苇。 院中可真熱鬧哩掺,春花似錦、人聲如沸涩笤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹬碧。三九已至舱禽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恩沽,已是汗流浹背誊稚。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人里伯。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓绽昏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俏脊。 傳聞我的和親對象是個殘疾皇子全谤,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容