예제 #1
0
        public bool SendString(String str)
        {
            bool result = false;

            try
            {
                if (client != null && client.Connected)
                {
                    // 메시지 보내기
                    byte[] msg = System.Text.Encoding.UTF8.GetBytes(str);
                    nStream.Write(msg, 0, msg.Length);
                    nStream.Flush();

                    SocketSendEventArgs sev = new SocketSendEventArgs(this.id, msg.Length);
                    Sent(sev);

                    result = true;
                }
            }
            catch (Exception err)
            {
                SocketErrorEventArgs eev = new SocketErrorEventArgs(this.id, err);
                ErrorOccured(eev);
            }
            return(result);
        }
예제 #2
0
        /// <summary>
        /// 서버에 연결된 모든 Client에게 데이터를 송신 한다.
        /// </summary>
        /// <param name="data"></param>
        /// <param name="data_length"></param>
        /// <returns></returns>
        public bool BroadCast(byte[] data, int data_length)
        {
            bool result = false;

            try
            {
                foreach (var client in RemoteClients.ToList())
                {
                    if (client.Value != null)
                    {
                        NetworkStream stream = client.Value.GetStream();
                        if (stream != null)
                        {
                            stream.Write(data, 0, data_length);
                            stream.Flush();
                            result = true;
                        }
                    }
                    SocketSendEventArgs sev = new SocketSendEventArgs(this.id, data_length);
                    Sent(sev);
                }
            }
            catch (Exception err)
            {
                SocketErrorEventArgs eev = new SocketErrorEventArgs(this.id, err);
                ErrorOccured(eev);
                //Debug.WriteLine("ServerSocket->BroadCast Error:"+err.Message);
            }
            return(result);
        }
예제 #3
0
        protected virtual void Sent(SocketSendEventArgs e)
        {
            SocketSendEventHandler handler = OnSend;

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #4
0
        public bool Send(byte[] data, int data_size)
        {
            bool result = false;

            try
            {
                if (nStream != null && client.Connected)
                {
                    nStream.Write(data, 0, data_size);
                    nStream.Flush();

                    SocketSendEventArgs sev = new SocketSendEventArgs(this.id, data_size);
                    Sent(sev);

                    result = true;
                }
            }
            catch (Exception err)
            {
                SocketErrorEventArgs eev = new SocketErrorEventArgs(this.id, err);
                ErrorOccured(eev);
            }
            return(result);
        }
예제 #5
0
 private void OnClientSend(object sender, SocketSendEventArgs e)
 {
     //AddLog(Log.Type.LOG_INFO, "PC -> HOST: Send ID: " + e.ID.ToString() + " Bytes sent: " + e.SendBytes.ToString());
 }