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"));
}
}
}
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;
}
}
}
}
}