private void Dowrk() { SeverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); ipep = new IPEndPoint(IPAddress.Any, 8080); SeverSocket.Bind(ipep); SeverSocket.Listen(10); Debug.Log("소켓 대기중...."); client = SeverSocket.Accept();//client에서 수신을 요청하면 접속합니다. Debug.Log("소켓 연결되었습니다."); clientep = (IPEndPoint)client.RemoteEndPoint; recvStm = new NetworkStream(client); sendStm = new NetworkStream(client); while (Socket_Thread_Flag) { byte[] receiveBuffer = new byte[256]; try { recvStm.Read(receiveBuffer, 0, receiveBuffer.Length); recvData = ByteToStruct <RecvPacket>(receiveBuffer); isRecved = true; } catch (Exception e) { Debug.Log(e.Message); Socket_Thread_Flag = false; client.Close(); SeverSocket.Close(); continue; } } }
public GameReceiver() { mRoles = new Dictionary <int, RoleData>(); mPropertyTable = new Dictionary <int, PropData>(); mRecordTable = new Dictionary <int, RecData>(); mMenus = new Dictionary <int, MenuData>(); RecvPacket.SetGameReceiver(this); }
void AddPacketToRecvQueue(byte[] bytes, int length) { RecvPacket pkt = new RecvPacket(); pkt.buffer = new byte[length]; Buffer.BlockCopy(bytes, 0, pkt.buffer, 0, length); pkt.length = length; RecvPacketQueue.Add(pkt); Buffer.BlockCopy(bytes, length, bytes, 0, MAX_BYTE_SIZE - length); }
public bool HasHeader(int header) { if (Enum.IsDefined(typeof(ClientPacket), header)) { var _header = (ClientPacket)header; if (RecvPacket.ContainsKey(_header)) { return(true); } } return(false); }
public Type GetRecvPacket(int header) { if (Enum.IsDefined(typeof(ClientPacket), header)) { var _header = (ClientPacket)header; if (RecvPacket.ContainsKey(_header)) { return(RecvPacket[_header]); } } return(null); }
IEnumerator ProcessCoroutine() { while (true) { if (RecvPacketQueue.Count <= 0) { } else { RecvPacket rPkt = RecvPacketQueue[0]; PacketProcess(rPkt); RecvPacketQueue.RemoveAt(0); } yield return(null); } }
void Awake() { instance = this; Socket_Thread = new Thread(Dowrk); Socket_Thread_Flag = true; Socket_Thread.Start(); isRecved = false; recvData = new RecvPacket(); sendData = new SendPacket(); sendData.data1 = 0; sendData.data2 = 0; sendData.data3 = 0; sendData.data4 = 0; sendData.data5 = 0; }
void Awake() { instance = this; Socket_Thread = new Thread(Dowrk); Socket_Thread_Flag = true; Socket_Thread.Start(); isRecved = false; recvData = new RecvPacket(); sendData = new SendPacket(); /// ed: input으로 사용할 data, isDone 변수값을 초기화합니다 sendData.data = new float[181]; for (int i = 0; i < sendData.data.Length; i++) { sendData.data[i] = 0; } sendData.isDone = 0; sendData.reward = 1; }
public void addBuff(byte[] buff) { if (buff == null || buff.Length == 0) { return; } RecvBuffer.AddRange(buff); if (RecvBuffer.Count <= 2) { return; } UInt16 len = (UInt16)System.Net.IPAddress.HostToNetworkOrder((short)BitConverter.ToUInt16(RecvBuffer.ToArray(), 0)); int total = len + 2; if (RecvBuffer.Count < total) { return; } byte[] tbuff = new byte[len]; RecvBuffer.CopyTo(2, tbuff, 0, len); RecvPacket.BeginRead(tbuff); RecvBuffer.RemoveRange(0, total); }
public void SetGameClient(GameClient client) { m_client = client; RecvPacket.SetGameClient(client); }
public ICustomHandler GetCustomHandler() { return(RecvPacket.GetCustomHandle()); }
// 自定义消息处理器对象 public void SetCustomHandler(ICustomHandler msgHandle) { RecvPacket.SetCustomHandle(msgHandle); }
public IGameMsgHander GetGameMsgHandler() { return(RecvPacket.GetMsgHandle()); }
public void SetGameMsgHander(IGameMsgHander msgHandle) { RecvPacket.SetMsgHandle(msgHandle); }
void PacketProcess(RecvPacket rPkt) { PacketHeader pHeader = new PacketHeader(); Buffer.BlockCopy(rPkt.buffer, 0, pHeader.pID, 0, 2); Buffer.BlockCopy(rPkt.buffer, 2, pHeader.bodySize, 0, 2); PACKETID pID = (PACKETID)BitConverter.ToInt16(pHeader.pID, 0); Debug.LogWarning("header ID : " + BitConverter.ToInt16(pHeader.pID, 0) + " | pID : " + pID); Debug.Log(rPkt.buffer[0]); Debug.Log(rPkt.buffer[1]); switch (pID) { case PACKETID.RES_LOGIN: { Debug.Log("RES_LOGIN"); bool isExist = BitConverter.ToBoolean(rPkt.buffer, 4); Debug.Log(isExist); if (isExist == false) { pDataManager.SetPlayerState(SCENE_STATE.LOGIN_SCENE_FAILED); break; } string key = Encoding.Default.GetString(rPkt.buffer, 5, 10); pDataManager.SavePlayerKey(key); pDataManager.SetPlayerState(SCENE_STATE.MY_SCENE); } break; case PACKETID.RES_REGISTER_USER: { Debug.Log("RES_REGISTER"); bool isExist = BitConverter.ToBoolean(rPkt.buffer, 4); Debug.Log(isExist); if (isExist == false) { pDataManager.SetPlayerState(SCENE_STATE.CREATE_USER_FAILED); break; } string key = Encoding.Default.GetString(rPkt.buffer, 5, 10); pDataManager.SavePlayerKey(key); Debug.Log("uID : " + key); pDataManager.SetPlayerState(SCENE_STATE.CREATE_USER_SUCCESS); } break; case PACKETID.RES_GET_DUNGEON_LIST: { byte[] dataNum = new byte[2]; Buffer.BlockCopy(rPkt.buffer, 4, dataNum, 0, 2); short num = BitConverter.ToInt16(dataNum, 0); Debug.LogWarning("recved Tile Num : " + num); Debug.LogWarning("bytes : " + dataNum[0] + dataNum[1]); pDataManager.SaveTotalDTileNum(num); byte[] uID = new byte[10]; byte[] dID = new byte[10]; byte[] dName = new byte[10]; byte[] dInfo = new byte[30]; byte[] roomNum = new byte[2]; for (int i = 0; i < num; ++i) { Buffer.BlockCopy(rPkt.buffer, 6 + 62 * i, uID, 0, 10); Buffer.BlockCopy(rPkt.buffer, 16 + 62 * i, dID, 0, 10); Buffer.BlockCopy(rPkt.buffer, 26 + 62 * i, dName, 0, 10); Buffer.BlockCopy(rPkt.buffer, 36 + 62 * i, dInfo, 0, 30); Buffer.BlockCopy(rPkt.buffer, 66 + 62 * i, roomNum, 0, 2); pDataManager.SaveSearchSceneMapData( i, Encoding.Default.GetString(uID), Encoding.Default.GetString(dID), Encoding.Default.GetString(dName), Encoding.Default.GetString(dInfo), BitConverter.ToInt16(roomNum, 0) ); } pDataManager.SetPlayerState(SCENE_STATE.SEARCH_SCENE_LOADED); } break; default: break; } }
public SocketRevMsgHandle() { mRecvPacket = new RecvPacket(); //add event //SERVER_SET_VERIFY (1) AddEvent(GlobalServerMsg.SERVER_SET_VERIFY, mRecvPacket.recvSetVerify); //SERVER_SET_ENCODE (2) AddEvent(GlobalServerMsg.SERVER_SET_ENCODE, mRecvPacket.recvSetEncode); //SERVER_ERROR_CODE (3) AddEvent(GlobalServerMsg.SERVER_ERROR_CODE, mRecvPacket.recvErrorCode); //AddEvent(GlobalServerMsg.SERVER_IDLE, mRecvPacket.recvIdle); //SERVER_LOGIN_SUCCEED(4) AddEvent(GlobalServerMsg.SERVER_LOGIN_SUCCEED, mRecvPacket.recvLoginSuccess); //SERVER_WORLD_INFO (5) AddEvent(GlobalServerMsg.SERVER_WORLD_INFO, mRecvPacket.recvWorldInfo); //SERVER_IDLE (6) AddEvent(GlobalServerMsg.SERVER_IDLE, mRecvPacket.recvIdle); //SERVER_QUEUE (7) AddEvent(GlobalServerMsg.SERVER_QUEUE, mRecvPacket.recvQueue); //SERVER_TERMINATE (8) AddEvent(GlobalServerMsg.SERVER_TERMINATE, mRecvPacket.recvTerminate); //SERVER_PROPERTY_TABLE(9) AddEvent(GlobalServerMsg.SERVER_PROPERTY_TABLE, mRecvPacket.recvPropertyTable); //SERVER_RECORD_TABLE (10) AddEvent(GlobalServerMsg.SERVER_RECORD_TABLE, mRecvPacket.recvRecordTable); //SERVER_ENTRY_SCENE (11) AddEvent(GlobalServerMsg.SERVER_ENTRY_SCENE, mRecvPacket.recvEntryScene); //SERVER_EXIT_SCENE (12) AddEvent(GlobalServerMsg.SERVER_EXIT_SCENE, mRecvPacket.recvExitScene); //SERVER_ADD_OBJECT (13) AddEvent(GlobalServerMsg.SERVER_ADD_OBJECT, mRecvPacket.recvAddObj); //SERVER_REMOVE_OBJECT (14) AddEvent(GlobalServerMsg.SERVER_REMOVE_OBJECT, mRecvPacket.recvRemoveObj); //SERVER_SCENE_PROPERTY (15) AddEvent(GlobalServerMsg.SERVER_SCENE_PROPERTY, mRecvPacket.recvSceneProperty); //SERVER_OBJECT_PROPERTY (16) AddEvent(GlobalServerMsg.SERVER_OBJECT_PROPERTY, mRecvPacket.recvObjectProperty); //SERVER_RECORD_ADDROW (17) AddEvent(GlobalServerMsg.SERVER_RECORD_ADDROW, mRecvPacket.recvRecordAddRow); //SERVER_RECORD_DELROW (18) AddEvent(GlobalServerMsg.SERVER_RECORD_DELROW, mRecvPacket.recvRecordDelRow); //SERVER_RECORD_GRID(19) AddEvent(GlobalServerMsg.SERVER_RECORD_GRID, mRecvPacket.recvRecordGrid); //SERVER_RECORD_CLEAR (20) AddEvent(GlobalServerMsg.SERVER_RECORD_CLEAR, mRecvPacket.recvRecordClear); //SERVER_CREATE_VIEW (21) AddEvent(GlobalServerMsg.SERVER_CREATE_VIEW, mRecvPacket.recvCreateView); //SERVER_DELETE_VIEW (22) AddEvent(GlobalServerMsg.SERVER_DELETE_VIEW, mRecvPacket.recvDeleteView); //SERVER_VIEW_PROPERTY (23) AddEvent(GlobalServerMsg.SERVER_VIEW_PROPERTY, mRecvPacket.recvViewProperty); //SERVER_VIEW_ADD (24) AddEvent(GlobalServerMsg.SERVER_VIEW_ADD, mRecvPacket.recvViewAdd); //SERVER_VIEW_REMOVE (25) AddEvent(GlobalServerMsg.SERVER_VIEW_REMOVE, mRecvPacket.recvViewRemove); //SERVER_SPEECH (26) AddEvent(GlobalServerMsg.SERVER_SPEECH, mRecvPacket.recvSpeech); //SERVER_SYSTEM_INFO (27) AddEvent(GlobalServerMsg.SERVER_SYSTEM_INFO, mRecvPacket.recvSystemInfo); //SERVER_MENU (28) AddEvent(GlobalServerMsg.SERVER_MENU, mRecvPacket.recvMenu); //SERVER_CLEAR_MENU (29) AddEvent(GlobalServerMsg.SERVER_CLEAR_MENU, mRecvPacket.recvClearMenu); //SERVER_CUSTOM (30) (OK) AddEvent(GlobalServerMsg.SERVER_CUSTOM, mRecvPacket.recvCustom); //SERVER_LOCATION (31) (OK) AddEvent(GlobalServerMsg.SERVER_LOCATION, mRecvPacket.recvOnLocation); //SERVER_MOVING (32) AddEvent(GlobalServerMsg.SERVER_MOVING, mRecvPacket.recvOnMoving); //SERVER_ALL_DEST (33) (OK) AddEvent(GlobalServerMsg.SERVER_ALL_DEST, mRecvPacket.recvAllDest); //SERVER_WARNING (34) AddEvent(GlobalServerMsg.SERVER_WARNING, mRecvPacket.recvWarning); //SERVER_FROM_GMCC (35) AddEvent(GlobalServerMsg.SERVER_FROM_GMCC, mRecvPacket.recvFromGmcc); //SERVER_LINK_TO (36) AddEvent(GlobalServerMsg.SERVER_LINK_TO, mRecvPacket.recvLinkTo); //SERVER_UNLINK(37) AddEvent(GlobalServerMsg.SERVER_UNLINK, mRecvPacket.recvUnLink); //SERVER_LINK_MOVE (38) AddEvent(GlobalServerMsg.SERVER_LINK_MOVE, mRecvPacket.recvLinkMove); //SERVER_CP_CUSTOM (39) AddEvent(GlobalServerMsg.SERVER_CP_CUSTOM, mRecvPacket.recvCpCustom); //SERVER_CP_ADD_OBJECT (40) AddEvent(GlobalServerMsg.SERVER_CP_ADD_OBJECT, mRecvPacket.recvCpAddObject); //SERVER_CP_RECORD_ADDROW (41) AddEvent(GlobalServerMsg.SERVER_CP_RECORD_ADDROW, mRecvPacket.recvCpRecordAddRow); //SERVER_CP_VIEW_ADD (42) AddEvent(GlobalServerMsg.SERVER_CP_VIEW_ADD, mRecvPacket.recvCpViewAdd); //SERVER_VIEW_CHANGE (43) AddEvent(GlobalServerMsg.SERVER_VIEW_CHANGE, mRecvPacket.recvViewChange); //SERVER_CP_ALL_DEST (44) AddEvent(GlobalServerMsg.SERVER_CP_ALL_DEST, mRecvPacket.recvCpAllDest); //SERVER_ALL_PROP (45) AddEvent(GlobalServerMsg.SERVER_ALL_PROP, mRecvPacket.recvAllProp); //SERVER_CP_ALL_PROP (46) AddEvent(GlobalServerMsg.SERVER_CP_ALL_PROP, mRecvPacket.recvCpAllProp); //SERVER_ADD_MORE_OBJECT (47) AddEvent(GlobalServerMsg.SERVER_ADD_MORE_OBJECT, mRecvPacket.recvAddMoreObject); //SERVER_CP_ADD_MORE_OBJECT (48) AddEvent(GlobalServerMsg.SERVER_CP_ADD_MORE_OBJECT, mRecvPacket.recvCpAddMoreObject); //SERVER_REMOVE_MORE_OBJECT (49) AddEvent(GlobalServerMsg.SERVER_REMOVE_MORE_OBJECT, mRecvPacket.recvRemoveMoreObject); //SERVER_CHARGE_VALIDSTRING (50) //AddEvent(GlobalServerMsg.SERVER_CHARGE_VALIDSTRING, mRecvPacket.recvChargeValidString); //SERVER_VERSION(50) AddEvent(GlobalServerMsg.SERVER_VERSION, mRecvPacket.recvVersion); AddEvent(GlobalServerMsg.SERVER_PLATFROM_LOGIN, mRecvPacket.recvPlatformLogin); }