private void send_command(Command_Server command_code, object data) { if (Unit_No == -1) { return; } AsyncObject ao = new AsyncObject(1); command_data_server CD = new command_data_server(Unit_No, command_code, data); // 문자열을 바이트 배열으로 변환 //ao.Buffer = GZipCompress.Compress(Encoding.Unicode.GetBytes(JsonConvert.SerializeObject(CD))); ao.Buffer = Data_structure.Combine(Encoding.Unicode.GetBytes("^^^"), GZipCompress.Compress(Encoding.Unicode.GetBytes(JsonConvert.SerializeObject(CD)))); ao.WorkingSocket = m_ClientSocket; // 전송 시작! try { m_ClientSocket.BeginSend(ao.Buffer, 0, ao.Buffer.Length, SocketFlags.None, m_fnSendHandler, ao); } catch (Exception ex) { Console.WriteLine("SENDING ERROR: {0}", ex.Message); // 서버와 연결이 끊기면 여기서 문제가 생긴다. Make_Client_Event(Unit_Event_Type.Server_Connection_Broken, 0); Connected = false; } }
public static void Add_Response(Command_Server command_code_to_server, object data) { lock (Responser_Q) { Responser_Q.Enqueue(new command_data_server(Unit_No, command_code_to_server, data)); } }
private void send_command(Command_Server command_code, object data) { if (Unit_No == -1) { return; } AsyncObject ao = new AsyncObject(1); command_data_server CD = new command_data_server(Unit_No, command_code, data); try { // 문자열을 바이트 배열으로 변환 //ao.Buffer = GZipCompress.Compress(Encoding.Unicode.GetBytes(JsonConvert.SerializeObject(CD))); ao.Buffer = Data_structure.Combine(Encoding.Unicode.GetBytes("^^^"), GZipCompress.Compress(Encoding.Unicode.GetBytes(JsonConvert.SerializeObject(CD)))); ao.WorkingSocket = m_ClientSocket; } catch (Exception ex) { Console.WriteLine("전송 준비중 오류!\n메세지: {0}", ex.Message); return; } try { // 전송 시작! m_ClientSocket.BeginSend(ao.Buffer, 0, ao.Buffer.Length, SocketFlags.None, m_fnSendHandler, ao); } catch (Exception ex) { Console.WriteLine("전송 중 오류 발생!\n메세지: {0}", ex.Message); Flag_Restart = true; } }
private static void Add_Response(int receiver, Command_Server command_code_to_server, object data) { lock (Responser_Q) { Responser_Q.Enqueue(new command_data_server(receiver, command_code_to_server, data)); } }
public command_data_server(Int32 sender, Command_Server command_code, object data) { this.Sender = sender; this.Command_code = (int)command_code; this.data = data; }