NET - ClientManager.cs - 客户端连接器
/// <summary>/// 这个是用来管理跟服务器端的Socket连接/// </summary>public class ClientManager :BaseManager { private const string IP = "127.0.0.1"; private const int PORT = 6688; private Socket clientSocket; //实例化信息 private Message msg = new Message(); public ClientManager(GameFacade facade) : base(facade) { } //连接服务器 public override void OnInit(){} //监听 private void Start(){} //接收数据 private void ReceiveCallback(IAsyncResult ar){} private void OnProcessDataCallback(动作码,数据){} //发送请求 public void SendRequest(请求码,动作码,数据){} //关闭游戏 public override void OnDestroy(){}
/// <summary>/// 这个是用来管理跟服务器端的Socket连接/// </summary>public class ClientManager :BaseManager { private const string IP = "127.0.0.1"; private const int PORT = 6688; private Socket clientSocket; //实例化信息 private Message msg = new Message(); public ClientManager(GameFacade facade) : base(facade) { } //连接服务器 public override void OnInit(){} //监听 private void Start(){} //接收数据 private void ReceiveCallback(IAsyncResult ar){} private void OnProcessDataCallback(ActionCode actionCode,string data){} //发送请求 public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data){} //关闭游戏 public override void OnDestroy(){}
using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Net.Sockets;using System;using Common;/// <summary>/// 这个是用来管理跟服务器端的Socket连接/// </summary>public class ClientManager :BaseManager { private const string IP = "127.0.0.1"; private const int PORT = 6688; private Socket clientSocket; //实例化信息 private Message msg = new Message(); public ClientManager(GameFacade facade) : base(facade) { } //连接服务器 public override void OnInit() { base.OnInit(); clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { clientSocket.Connect(IP, PORT); Start(); } catch (Exception e) { Debug.LogWarning("无法连接到服务器端,请检查您的网络!!" + e); } } //监听 private void Start() { clientSocket.BeginReceive(msg.Data,msg.StartIndex,msg.RemainSize, SocketFlags.None, ReceiveCallback, null); } //接收数据 private void ReceiveCallback(IAsyncResult ar) { try { if (clientSocket == null || clientSocket.Connected == false) return; int count = clientSocket.EndReceive(ar); msg.ReadMessage(count, OnProcessDataCallback); Start(); } catch(Exception e) { Debug.Log(e); } } private void OnProcessDataCallback(ActionCode actionCode,string data) { facade.HandleReponse(actionCode, data); } //发送请求 public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data) { byte[] bytes = Message.PackData(requestCode, actionCode, data); clientSocket.Send(bytes); } //关闭游戏 public override void OnDestroy() { base.OnDestroy(); try { clientSocket.Close(); }catch(Exception e) { Debug.LogWarning("无法关闭跟服务器端的连接!!" + e); } }}