客户端
using System;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using LitJson;
public class Click : MonoBehaviour
{
Socket socket;
string toServerJudge;
byte[] sendJudge;
public InputField userNameInputField;
public InputField passWardInputField;
public InputField userNameInputFieldRegister;
public InputField passWardInputFieldRegister;
public void OnClick(int value)
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
socket.Connect(endPoint);
print("与服务器连接成功");
switch (value)
{
case 0:
string userNameRegisterStr = userNameInputFieldRegister.text;
string passWardRegisterStr = passWardInputFieldRegister.text;
JsonData register = new JsonData();
register["router"] = "register";
register["data"] = new JsonData();
register["data"]["username"] = userNameRegisterStr;
register["data"]["passward"] = passWardRegisterStr;
string jsonDataRegister = JsonMapper.ToJson(register);
print(jsonDataRegister);
byte[] sendNameRegisterByte = System.Text.Encoding.UTF8.GetBytes(jsonDataRegister);
socket.Send(sendNameRegisterByte);
break;
case 1:
string userNameStr = userNameInputField.text;
string passWardStr = passWardInputField.text;
JsonData login = new JsonData();
login["router"] = "login";
login["data"] = new JsonData();
login["data"]["username"] = userNameStr;
login["data"]["passward"] = passWardStr;
string jsonDataLogin = JsonMapper.ToJson(login);
print(jsonDataLogin);
byte[] sendByte = System.Text.Encoding.UTF8.GetBytes(jsonDataLogin);
socket.Send(sendByte);
byte[] sendReceiveByte = new byte[2048];
int count = socket.Receive(sendReceiveByte);
string isLoad = System.Text.Encoding.UTF8.GetString(sendReceiveByte, 0, count);
switch (isLoad)
{
case "login_Success":
print($"<color=#ffff00>登录成功</color>");
break;
case "login_Wrong":
print($"<color=#ffff00>登录失败,用户名或密码错误</color>");
break;
}
break;
}
}
}
服务端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
namespace Server_1
{
class ClientState
{
public Socket socket;
public byte[] readBuff = new byte[1024];
}
class Program
{
static void Main(string[] args)
{
Socket listendScoket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPAddress ipaddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipend = new IPEndPoint(ipaddress,8080);
listendScoket.Bind(ipend);
Console.WriteLine("服务端启动");
listendScoket.Listen(0);
Console.WriteLine("开启监听");
while(true)
{
Socket fdlistend = listendScoket.Accept();
Console.WriteLine("客户端连接 "+fdlistend.RemoteEndPoint);
byte[] receiveByte = new byte[2048];
int count = fdlistend.Receive(receiveByte);
Console.WriteLine("接收到>>>" + System.Text.Encoding.UTF8.GetString(receiveByte,0,count));
string logStr = "服务端处理";
string receiveStr = logStr + System.Text.Encoding.UTF8.GetString(receiveByte,0,count);
Console.WriteLine("服务端处理" + receiveStr);
byte[] backByte = System.Text.Encoding.UTF8.GetBytes(receiveStr);
Console.WriteLine("---------------------" + System.Text.Encoding.UTF8.GetString(backByte));
Console.WriteLine("服务端发送字节流长度 :" + backByte.Length);
for (int i = 0; i < backByte.Length; i++)
{
Console.WriteLine("======"+ backByte[i]);
}
fdlistend.Send(backByte);
}
}
}
}