公告版位
需要找什麼嗎? 左邊分類或許可以幫助你...

如果你的輸出結果與放入前的數值不一樣,請先看這篇文章

http://lolikitty.pixnet.net/blog/post/185218848

程式碼:

using UnityEngine;
using System.Collections;
using Npgsql;

public class TestPgSQL : MonoBehaviour {

黃彥霖 發表在 痞客邦 留言(0) 人氣()

ALTER DATABASE <資料庫名稱> SET BYTEA_OUTPUT TO 'escape';

後面的單引號可以輸入 hex 或 escape ,由於預設是 hex 十六進制
所以由程式讀取 ( 如:C#、Java ) 會與放入前數值不一樣,且長度也不一樣
這時我們就需要事前使用這個語法,來改變資料庫輸出格式





黃彥霖 發表在 痞客邦 留言(0) 人氣()

可以到 http://pgfoundry.org/frs/?group_id=1000140 下載 Npgsql.dll 檔到 Unity 中
這裡我使用 Npgsql1.0.1-bin-mono-2.0.zip 版本 (太新版 Unity 會不支持...)
如果上面連結掛掉或找不到,我這裡提供我使用的的 Npgsql.dll 檔
https://www.dropbox.com/s/9rbeserttjlrf5e/Npgsql1.0.1-bin-mono-2.0.zip


using
UnityEngine;
using System.Collections;
using Npgsql;

public class Test : MonoBehaviour {

    void Start () {

黃彥霖 發表在 痞客邦 留言(0) 人氣()

這個程式碼執行後,Unity 執行時會當掉,但其實不是。
這是因為本程式碼只有單執行緒,他正在等待客戶端連線,
所以才有當掉的感覺 當客戶端連線後,Unity 就可以正常跑了 ...

using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class NewBehaviourScript : MonoBehaviour {

黃彥霖 發表在 痞客邦 留言(0) 人氣()

執行解果:
Golang, Go 語言 伺服器:

Go - Test1srcMy.go - Eclipse

 Unity 客戶端執行結果: 
Unity - A.unity - New Unity Project 16 - PC, Mac &amp; Linux Standalone DX11 on DX10 GPU  
 

程式碼:

//----------------------------------- Unity C# 客戶端

using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

public class NewBehaviourScript : MonoBehaviour {

        string ip = "127.0.0.1"; // 請改為自己對外的 IP
        int port = 1024;

        void OnGUI () {
                if(GUI.Button(new Rect(10,10,100,100), "Send Public IP")){
                        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        socket.Connect(ip, port); 
                        NetworkStream stream = new NetworkStream(socket);
                        StreamWriter sw = new StreamWriter(stream);
                        StreamReader sr = new StreamReader(stream);
                        
                        sw.WriteLine("你好伺服器,我是客戶端。");
                        sw.Flush();

                        string st = sr.ReadLine();
                        print (st);

                        sw.Close();
                        stream.Close();
                        socket.Close();
                }
        }
}

//-------------------------------------- Golang , Go語言 伺服器
package main import ( "bufio" "net" ) func main() { listener, _ := net.Listen("tcp", ":1024") println("啟動伺服器...") for { conn, _ := listener.Accept() // 持續監聽客戶端連線 go ClientLogic(conn) } } func ClientLogic(conn net.Conn) { // 從客戶端接收資料 s, _ := bufio.NewReader(conn).ReadString('\n') println("由客戶端傳來的訊息:", s) // 發送 資料至客戶端 conn.Write([]byte("安安你好\n")) // 關閉連線 conn.Close() }
 





黃彥霖 發表在 痞客邦 留言(0) 人氣()