Exemplo n.º 1
0
            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);
                    }
                }
            }
Exemplo n.º 2
0
 public void OnSendData(MultiSockets.SocketMSG p_Msg, SockFileTransfer.DataPacket p_Packet)
 {
     lock (_lockSending)
     {
         Thread thread = new Thread(() => Run(p_Msg, p_Packet));
         thread.Start();
     }
 }
Exemplo n.º 3
0
            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("", "메세지 전송에 실패 했습니다.");
                }
            }