如果你的輸出結果與放入前的數值不一樣,請先看這篇文章
http://lolikitty.pixnet.net/blog/post/185218848
程式碼:
using UnityEngine;
using System.Collections;
using Npgsql;
public class TestPgSQL : MonoBehaviour {
如果你的輸出結果與放入前的數值不一樣,請先看這篇文章
http://lolikitty.pixnet.net/blog/post/185218848
程式碼:
using UnityEngine;
using System.Collections;
using Npgsql;
public class TestPgSQL : MonoBehaviour {
ALTER DATABASE <資料庫名稱> SET BYTEA_OUTPUT TO 'escape';
後面的單引號可以輸入 hex 或 escape ,由於預設是 hex 十六進制
所以由程式讀取 ( 如:C#、Java ) 會與放入前數值不一樣,且長度也不一樣
這時我們就需要事前使用這個語法,來改變資料庫輸出格式
可以到 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 () {
這個程式碼執行後,Unity 執行時會當掉,但其實不是。
這是因為本程式碼只有單執行緒,他正在等待客戶端連線,
所以才有當掉的感覺 當客戶端連線後,Unity 就可以正常跑了 ...
using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
public class NewBehaviourScript : MonoBehaviour {
執行解果:
Golang, Go 語言 伺服器:
Unity 客戶端執行結果:
程式碼:
//----------------------------------- 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() }