public void MessageSend(MultiSockets.SocketMSG p_Msg) { string sData = string.Empty; // 현재 주소 획득 IPEndPoint o_IP = (IPEndPoint)o_SERVERSOCK.LocalEndPoint; p_Msg.sSender = o_IP.ToString(); sData = p_Msg.sHeader.ToString() + '\x01' + p_Msg.sSender + '\x01' + p_Msg.sMsg; // 입력받은 문자열을 utf8 형식의 바이트로 변환 byte[] arr_Message = Encoding.UTF8.GetBytes(sData); // 연결된 모든 클라이언트에게 전송한다. for (int i = lst_ConnectedClients.Count - 1; i >= 0; i--) { Socket socket = lst_ConnectedClients[i]; try { System.Threading.Thread.Sleep(50); socket.Send(arr_Message); } catch { // 오류 발생하면 전송 취소하고 리스트에서 삭제한다. try { socket.Dispose(); } catch { } lst_ConnectedClients.RemoveAt(i); } } }
public void OnSendData(MultiSockets.SocketMSG p_Msg, SockFileTransfer.DataPacket p_Packet) { lock (_lockSending) { Thread thread = new Thread(() => Run(p_Msg, p_Packet)); thread.Start(); } }
public void OnSendData(MultiSockets.SocketMSG msg) { if (CLIENTSOCK == null) { Append_SYSTEM_MSG("", "서버와 연결되어 있지 않습니다."); return; } try { // 현재 주소 획득 IPEndPoint iPEndPoint = (IPEndPoint)CLIENTSOCK.LocalEndPoint; string sData = msg.sHeader.ToString() + '\x01' + iPEndPoint.ToString() + '\x01' + msg.sMsg; // 문자열을 바이트로 변환 byte[] txtToByte = Encoding.UTF8.GetBytes(sData); // 데이터 전송 CLIENTSOCK.Send(txtToByte); } catch (Exception ex) { Append_SYSTEM_MSG("", "메세지 전송에 실패 했습니다."); } }