Exemplo n.º 1
0
        public void removeMapUser(int map_i, UserThread userThread)
        {
            try
            {
                if (MapUser2.ContainsKey(map_i) && MapUser2[map_i].Contains(userThread))
                {
                    MapUser2[map_i].Remove(userThread);
                }
                else
                {
                    return;
                }

                if (MapUser2[map_i].Count > 0)
                {
                    if (MapUser2[map_i][0].thread.IsAlive)
                    {
                        MapUser2[map_i][0].SW.WriteLine("<map_player>1</map_player>"); // 메시지 보내기
                        MapUser2[map_i][0].SW.Flush();
                    }
                }
            }
            catch (Exception e)
            {
                write_log(e.ToString());
            }
        }
Exemplo n.º 2
0
        // 유저 리스트에서 제거한다.
        public void removethread(UserThread userthread)
        {
            try
            {
                if (userthread == null)
                {
                    return;
                }
                // 접속이 되지 않은 유저 삭제 : 중간에 팅긴 유저에 대한 처리
                if (!userthread.client.Connected) // 접속이 끊겼는데 접속 되어 있다고 처리되서 계속 오류나고 있음
                {
                    int map_i = userthread.last_map_id;
                    removeMapUser(map_i, userthread);
                    UserList.Remove(userthread);
                    PlayerCount();
                    userthread.thread.Abort();

                    if (userthread.UserName != null)
                    {
                        write_log(userthread.UserName + " 종료");
                        Packet("<chat1>(알림): '" + userthread.UserName + "'님께서 종료하셨습니다.</chat1>");
                        Packet("<9>" + userthread.UserCode + "</9>");
                    }
                }
            }
            catch (Exception e)
            {
                write_log(e.ToString());
            }
        }
Exemplo n.º 3
0
        // Listen New User Connection
        public void Thread_NetWorkListening()
        {
            TcpListener Listener = null;
            TcpClient   client   = null;

            try
            {
                Listener = new TcpListener(IPAddress.Any, Int32.Parse(Properties.Resources.PORT));
                Listener.Start(); // Listener 동작 시작

                while (true)
                {
                    // Accept New Tcp Client
                    client = Listener.AcceptTcpClient();
                    // New Client User Thread
                    UserThread userthread = new UserThread();
                    userthread.mainform = this;
                    userthread.startClient(client);

                    UserList.Add(userthread);

                    if (!MapUser2.ContainsKey(0))
                    {
                        MapUser2.Add(0, new List <UserThread>());
                    }
                    MapUser2[0].Add(userthread);
                }
            }
            catch (Exception e)
            {
                write_log(e.ToString());
            }
            finally
            {
            }
        }