socket 登录界面

客户端

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;
    //登录模块 InputField
    public InputField userNameInputField;
    public InputField passWardInputField;

    //注册模块 InputField
    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;

                //将注册信息打包成Json包
                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;
                // print(userNameStr.Length);
                // print(passWardStr.Length);

                //将登录信息打包成Json包
                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);
                //  Console.WriteLine("---------------------"+System.Text.Encoding.Default.GetString(backByte)); 
                for (int i = 0; i < backByte.Length; i++)
                {
                    Console.WriteLine("======"+ backByte[i]);
                }
                fdlistend.Send(backByte);
            }
        }
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值