您的位置:首页 > 移动开发 > Unity3D

Unity3D与MySQL

2015-12-06 09:58 344 查看
[csharp] view
plaincopy





using UnityEngine;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net;

using System.Net.Sockets;

using System.Threading;



public class Client : MonoBehaviour

{

public string ipAddress = "127.0.0.1";

IPAddress ip;

Socket socket;

// Use this for initialization

void Start()

{

ip = IPAddress.Parse(ipAddress);

socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

socket.Connect(new IPEndPoint(ip, 8885));

}



// Update is called once per frame

void Update()

{



}



void OnGUI()

{



if (GUI.Button(new Rect(0, 20, 100, 20), "Connect"))

{

socket.Send(Encoding.ASCII.GetBytes("test,123456"));

}

}

}



[csharp] view
plaincopy





using System;

using System.Collections.Generic;

using System.Text;

using ProtoBuf;

using System.Net;

using System.Data;

using System.Net.Sockets;

using System.Threading;

using MySql.Data.MySqlClient;



namespace CenterServer

{

class Program

{

private static byte[] result = new byte[1024];

private static Socket serverSocket;

private static int serverPort = 8885;





static void Main(string[] args)

{



IPAddress ip = IPAddress.Parse("127.0.0.1");

serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

serverSocket.Bind(new IPEndPoint(ip, serverPort));

serverSocket.Listen(100);

Console.WriteLine("启动监听{0}成功", serverSocket.LocalEndPoint.ToString());

//通过Clientsoket发送数据

Thread myThread = new Thread(ListenClientConnect);

myThread.Start();



Console.ReadLine();

}



/// <summary>

/// 监听客户端连接

/// </summary>

private static void ListenClientConnect()

{

while (true)

{

Socket clientSocket = serverSocket.Accept();

clientSocket.Send(Encoding.ASCII.GetBytes("Server Say Hello"));

Thread receiveThread = new Thread(ReceiveMessage);

receiveThread.Start(clientSocket);

}

}



/// <summary>

/// 接收消息

/// </summary>

/// <param name="clientSocket"></param>

private static void ReceiveMessage(object clientSocket)

{

Socket myClientSocket = (Socket)clientSocket;



while (true)

{

try

{

//通过clientSocket接收数据

int receiveNumber = myClientSocket.Receive(result);

string[] message = Encoding.ASCII.GetString(result, 0, receiveNumber).Split(',');

string userName = message[0];

string passWord = message[1];

SQLHelper helper = new SQLHelper();

string sql = string.Format("SELECT * FROM test.account where account_name='" + userName + "'");

DataTable dt = helper.Selectinfo(sql);

if ((string)dt.Rows[0]["account_password"] == passWord)

{

Console.WriteLine(userName + " 登录验证成功");

}

else

{

Console.WriteLine(userName + " 登录验证失败");

}

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

myClientSocket.Shutdown(SocketShutdown.Both);

myClientSocket.Close();

break;

}

}

}



public class DBHelper

{

public MySqlConnection GetConn()

{

MySqlConnection mysqlConn = new MySqlConnection("Database='" + "test" + "';Data Source='" + "localhost" + "';User Id='" + "root" + "';Password='" + "" + "'");

return mysqlConn;

}

}



public class SQLHelper : DBHelper

{

/// <summary>

/// 查询操作

/// </summary>

/// <param name="sql"></param>

/// <returns></returns>

public DataTable Selectinfo(string sql)

{

MySqlConnection mysqlconn = null;

MySqlDataAdapter sda = null;

DataTable dt = null;

try

{

mysqlconn = base.GetConn();



sda = new MySqlDataAdapter(sql, mysqlconn);

dt = new DataTable();

sda.Fill(dt);



return dt;

}

catch (Exception)

{

throw;

}



}



/// <summary>

/// 增删改操作

/// </summary>

/// <param name="sql">sql语句</param>

/// <returns>执行后的条数</returns>

public int AddDelUpdate(string sql)

{



MySqlConnection conn = null;

MySqlCommand cmd = null;



try

{

conn = base.GetConn();

conn.Open();

cmd = new MySqlCommand(sql, conn);

int i = cmd.ExecuteNonQuery();

conn.Close();

return i;

}

catch (Exception)

{



throw;

}



}

}

}

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: