Jump to content
Notícia
  • Adquira já o seu VIP!

Search the Community

Showing results for tags 'servidor'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Anunciantes
    • Warior Destiny
    • silvaBR Cheats
    • Velozhost
    • SkyNet IPTV
  • ################## WEB CHEATS ##################
  • Anúncios/Eventos
    • Regras
    • Anúncios
    • Eventos do fórum
  • Feedback & Suporte
    • Tutoriais WC
    • Suporte
    • Sugestões
    • Denúncias e Reclamações
    • Depósito
  • Shooter Zone
    • Counter Strike
    • Valorant
    • Rainbow Six Siege
    • Outros Shooters em Geral
    • Shooter Zone - Lixão
  • Battle Royale
    • COD Warzone
    • Free Fire
    • PUBG - Playerunknown's Battlegrounds
    • Fortnite
    • Outros Jogos Battle Royale
  • MMO Zone
  • Outros Games Zone
  • Design Zone
  • Info Zone
  • ################## WEB CHEATS ##################
  • Entretenimento & Diversão
  • MarketPlace
  • Old WC's Bate Papo
  • 【FREE FIRE】▄︻┻┳═一's Fórum do Clube
  • Anticomunismo's Tópicos
  • Tópicos Importantes !'s Tópicos

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Idade

 
or  

Found 174 results

  1. SkyBlock Server IP: skyplay.virtus.host Versão: 1.8x - Sistema de Caixa Misteriosa - Sistema de McMMO - Economia Balanceada - Staff Ativa - VIP Balanceado(não é pay to win) - Eventos Diarios - Sistema de /skin - Ilhas personalizadas - MobSpawners - Anti-Hack funcional - Sistema Conquistas(achievement) E Muito mais, venha conferir! Prints Spawn(visão panorâmica): [Hidden Content] Spawn: [Hidden Content] Arena Pvp/MobTrap pública: [Hidden Content] Loja: [Hidden Content] Área de eventos: [Hidden Content] [Hidden Content]
  2. Olá, Está cansado de jogar Minecraft Vanilla? Está cansado de, monotonamente, ir ao Nether? Apresento-lhe o servidor Modern Age, um modpack survival com mais de 80 mods inclusos, entre eles: Atum Draconic Evolution BigReactors The Twilight Forest ThaumCraft Tinkers Mekanism Botania Clique aqui para a lista completa. SPAWN Informações básicas Servidor Modern Age Versão 1.7.10 Server IP 45.35.54.55:25577 Inauguração 13/11/2017 Fundador SssDk Contato [Hidden Content] Interessado? Clique aqui para o tutorial de como instalar o modpack. Entre AGORA e garanta sua CAIXA DE LOOT podendo ganhar os seguintes itens:
  3. Eae galera, tranquilo ? estou aqui para apresentar meu novo trabalho, estou editando um servidor de grand chase season 2, está tudo funcionando, no momento estamos trabalhando na Game Guard e no Launcher, falta poucos dias para o Lançamento! GRAND CHASE - ULTIMATE SEASON 2 Mais Informações Video Youtube: Curta a Página do Facebook: [Hidden Content] Site em Breve: COMING Algumas Imagens do servidor VALEU GALERA - EQUIPE ULTIMATE TRABALHANDO PARA SUA DIVERSÃO :)
  4. Seja Bem-Vindo(a) ao MegaCrazy Bom Galera, Estou trazendo este tópico para anunciar e divulgar o mais novo servidor de minecraft, creio que muitos de vocês estavam procurando algo como nosso servidor, as construções são próprias ou seja, foi totalmente construído por nós. Nosso servidor não é OP a economia é balanceada e temos diversos ranks para você evoluir, conforme você vai minerando, escavando, colhendo você tem a possibilidade de encontras tesouros... Confira tudo isso e muito mais entrando em nosso Servidor !! Versão: 1.8 IP: MegaCrazyServidor.reis.host Site: [Hidden Content] Características: > Economia Balanceada < > Eventos < > Recompensa Diária < > Caixas < > MoB Spawners < > Rankup < > Itens GoD < > Itens Especiais Dropados dos MoBs < > TAG do clan no TAB < > Anti-Lag (Quando vocês mineram os itens vão direto pro Inventário) < > MCMMO (Em Breve) < > Maquinas (Em Breve) < > ScoreBoard < > Mito < > VIP < > Eventos Diferenciados (Em Breve) < > E Muito mais < Vídeos Divulgando o Servidor: Trailer: Vídeo Explicando:
  5. Post rápido só pra avisar que tem um servidor season 1 que está online,eu to chando ele meio vazio e queria muito que lotasse.Ta aqui o link www.gccash.xyz De Elesis até Ronan,todas as classes liberadas ratio de xp alta,chega mais!
  6. Grand Chase Way Season V EP 2: Olá, venho aqui no fórum para informa-los sobre um servidor de Grand Chase que está por vir, para mim é o servidor privado mais atualizado, e o seu administrador é o Sakegari, Antigo administrador do Grand Chase History, o servidor está vindo com várias novidades, e uma delas é o Personagem Uno, e outras coisas como Torre da Extinção, Portal Dimensional, e um novo ranking de PVP, entre outras coisas que você só saberá se entra no servidor. Informações Importantes: Rate 2x Linguagem oficial: Português Bônus de VP (Token): para quem tem conta no History: [Hidden Content] (Para novos jogadores também). Usuários banidos do history poderão resgata seu token também, digamos que terá uma segunda chance. VP semanais: 700 por semana. Dia do lançamento: 21/05/2017 as 18:00H (AMANHÃ/DOMINGO). Liberação dos tokens: 22/05/2017. Separação de inventário: infelizmente o servidor contém separação de inventário, mais fique calmo, você tem 15.000 VP inicial. Não terá versão beta, irá direto para a versão oficial. Todos que logarem no dia 21/05/2017, ganharam 1.000 VP. Quatro slot de personagens grátis. Equipe: Administradores: Sakegari, Gamer Master: Celly, Housex e Vinisims, Moderadores: Geas, Mynna e Soly. Haverá uma live as 21:50 do dia 20/05/2017 (HOJE/SÁBADO), para demonstração do servidor. Links e mais informações do servidor: Sites: [Hidden Content] Segundo link: [Hidden Content] Tokens: [Hidden Content] Youtube: [Hidden Content] Facebook: [Hidden Content] Discord: [Hidden Content] Twitter: [Hidden Content] Contagem regressiva: [Hidden Content]inauguracao/#countdown Download: [Hidden Content]inauguracao/#download E-mail oficial: [email protected] Minha opinião sobre o servidor: eu achei ele super interessante e bem inovador, e também o administrador é excelente e bem dedicado as coisas que ele faz, creio eu que o servidor será um sucesso e já conta com mais de 1.000 registrados, e como já tem muitos usuários, será bem mais fácil de passar de nível e o rate é bastante interessante, recomendo todos vocês a jogarem esse servidor, e sem falar que é um dos melhores da atualidade, estão vamos todos entrar lá e se divertir. Qualquer dúvida é só me pergunta aqui ou no jogo, meu nick no way é Light <3 Trailer Oficial: Com dúvida ao saber como usar o token privado do Grand Chase History? Veja o video: #LongLiveTheChase.
  7. Alguém poderia por gentileza, me disponibilizar um cliente 7.56, fiz um servidor e preciso só de um cliente para testar. Dei uma olhada e todos que achei os Link tao quebrado... Tenho um servidor 7.62 (feito, porem com alguns erro básico, se algum programador disponibilizar ajuda, poderá entrar na equipe)
  8. Salve Galera Vim Aqui Apresentar a Vocês Meu Servidor 1.8.x e 1.5.2 Ambos são rankup/Pvp/edits O 1.5.2 é Mais Velho tem 7 meses o 1.8.x é novo Inaugurado Hoje Temos vagas de Divulgador apenas pois temos pouco's Player's Chame 5 Amigos e Receba prêmios 1.5.2 IP: dragoncraft9.batt.host 1.8.x IP: dragoncraft9.desire.host Deem dicas do que por Pra inovar Eventos etc Estarei Esperando Vocês lá Pelo Servidor ser novo Queremos Sua Ajuda Com Dicas.
  9. Ola pessoal,eu sou DarkBR8 uns dos lideres do servidor de RolePlay MegaCity e venho aqui aprensenta-lo a vocês. Introdução Nosso servidor tem como base uma cidade em desenvolvimento,a qual você fara parte,trabalhando,ganhando dinheiro,construindo,montando sua impressa e enriquecendo. o quanto você se apega ao servidor, e o quanto você quer causar, diversão, para as pessoas que irão jogar. Trabalhos: Assim que você entrar no servidor você escolhera um trabalho (veja a lista completa de trabalhos aqui [Hidden Content]) e ganhar seu dinheiro vendendo seus produtos para a cidade ou para outros jogadores e assim aumentar sua influencia. Sistema de Plots O sistema de plots imposto no servidor permite ao usuário ter um terreno seguro contra,roubos de bau e acessos a qualquer que sejam seus itens dentro dessa áreas. Vale lembrar que ao entrar no servidor você recebera um Terreno 20X20 blocos gratuito Informações do Servidor O servidor posue um conjunto de regras que devem ser seguidas para enriquecer o RolePlay O servidor conta com mods e plugins que melhoram o Game,também conta com uma equipe especializada e preparada para atender as ocorrências no servidor. O servidor conta com um TeamSpeak próprio aberto aos usuários,podendo requisitar uma sala própria,para uma melhor jogatina. O servidor tem mods que melhoram o desempenho de sua maquina fazendo com que seu FPS seja estável e optimisado O servidor utiliza a versão 1.7.10 do minecraft Nosso ping fica em torno de 150ms,host exterior,sem lag,proteção anti-DDOS,backup diários e restart automáticos O servidor pode ser acessado pro contas originais e piratas Veja as informações completas,screemshots do servidor e o formulário para adesão aqui ---> [Hidden Content] Links seguros para acesso,site principal Wix DarkBR8
  10. INFORMAÇÕES Drops: 1% Sem Carta MVP Cidade Principal: Invek Max Level: 99/70 Custom: visuais BRO +100 Custons Quest Eventos diários E muito mais... [Hidden Content]
  11. VAMOS JOGAR !!!! Informações Basicas: Classes Inicial: 1°Classe -Chars Iniciais: Elesis á Lupus -Sistema de Recompensa (Selion) -Cash Inicial: 3000 Personagens: Elesis - 1° á 4ª Classe Lire - 1° á 4ª Classe Arme - 1° á 4° Classe Lass - 1° á 4ª Classe Ryan - 1° á 4ª Classe Ronan - 1° á 4ª Classe Amy - 1° á 4º Classe Jin - 1° á 4ª Classe Sieg - 1ª á 4° Classe Mari - 1ª á 4° Classe Dio - 1ª e 2° Classe Zero - 1° e 2º Classe Rey - 1° e 2° Classe Lupus - 1° a 4° Links : Site : gchorus.online Registro : gchorus.online/?pg=registro Download : [Hidden Content] Facebook : [Hidden Content] ---------------------------
  12. Olá , estou trazendo um servidor de Grand Chase pirata! Season da antiga versão! a Chaos! , bem parecido com o BGC de antigamente. vamos começar com a divulgação! Personagens. » Elesis até o Lupus! (todas as classes) » ao criar sua conta no GCH , você recebe todos os personagens grátis!. × Sistemas. » Ao antigir nível 80 em algum boneco você irá ganhar 80 de CASH! » Servidor é aliado com o Grand Chase History! × Paginas. [Hidden Content] (servidor está offiline , manutenção.)
  13. (Vídeo feito por um de nossos GM's simplificando um pouco a explicação do nosso servidor) Olá a todos, Aqui é o GM Link do novo Grand Chase Emotion! Finalmente o Grand Chase Emotion estará online. Para quem não sabe, foi o primeiro servidor season chaos a fazer o anúncio que estaria online. Porém teve muitos obstáculos a serem ultrapassados e muitos bugs comparados aos últimos vídeos postados em nossa fan page foram corrigidos. Confira abaixo todas as informações iniciais do servidor! Rates Primeiramente vamos falar das rates. Ao concluir missões você notará que receberá uma quantidade de 500% EXP e GP a mais. Achamos isso justo com quem joga grand chase atualmente pois seria injusto evoluir os personagens com as rates originais. (foi tão rápido que eu não consegui tirar a foto no momento da exp, apenas do gp adicional) Personagens e classes Primeiro falarei de todos os personagens que já possuem no jogo : Elesis(4), Lire(4), Arme(4), Lass(4), Ryan(4), Ronan(4), Amy(4), Jin(4), Sieg(4), Mari(4), Dio(2), Zero(2), Rey(2) e Lupus(4) * os números entre parênteses são as classes dos personagens Novas classes vão chegar ao servidor a partir de atualizações, como por exemplo a nossa equipe está trabalhando arduamente (sim, antes mesmo de lançar o jogo já estamos trabalhando arduamente em alguns assuntos importantes) para lançar o mais breve possível a 3º classe do Dio, o leviatã! Ao criar a sua conta, receberá automaticamente além dos personagens iniciais Elesis (1), Lire(1) e Arme(1) receberá o Lass(1) gratuitamente! Cash inicial Grátis Como de costume, teremos cash inicial sim. Todos receberão o saldo de 2000 Cash ao criar a conta. Teremos sim opções de compra de cash adicional via PagSeguro(boleto, cartão de crédito, transferencia bancária etc...) entre outros. Aos que não tem condição de adquirir cash adicional mas ainda sim querem ajudar o servidor, estamos pensando em uma forma (pelo menos até agora tudo certo) de você também adquirir Cash e ajudar o servidor! Balanceamento de personagens Como muitos sabem, a Season Chaos do BGC era a época mais desbalanceada do jogo (Pelo amor, um sino da morte e um agarrão matava na hora) Tanto em PvP quanto Missão. Em Grand Chase Emotion, algumas skills consideradas realmente "apelonas" tiveram um nerf fazendo assim um balanceamento entre todas as skills do jogo (claro que um jogador com personagem SS vai tirar mais dano comparado a outro jogador com personagem A+ ou inferior) e um aumento não muito grande na inteligencia dos monstros no modo Missão. Se você acha que para por ai sobre balanceamento, ainda não acabou! temos um canal balanceado onde você pode enfrentar os personagens de igual para igual independente de seus status ou itens! Skill Tree da Mari Toda a mecânica da nossa Tecnomaga já está disponível em Grand Chase Emotion! basta adquirir a mari e conferir as novidades em sua árvore de talentos Sistema de Recompensas do Nekobot Para iniciarmos de cabeça o nosso servidor, o Sistema de Recompensas inicial será o do Nekobot, que garante um visual robótico e agradável! Desafios Épicos melhorados Como mencionamos acima, além da melhora na inteligencia dos monstros, ao entrar no menu da loja épica, notará que poderá completar 10 desafios épicos diariamente sendo 5 vezes Altar da Ruína e 5 vezes fornalha infernal. Os horários dos desafios épicos foram sincronizados com duração de 30 minutos por hora. Futuras Atualizações Temos muita história ainda para contar. Muitas atualizações que com toda certeza irá chamar a sua atenção voltada ao PvP e Missão será absoluta. Quer um gostinho do que está vindo por ai ? veja abaixo alguns planos que temos (temos mais tá ? só nao podemos revelar, esses são apenas para esse mês e pode não ser na ordem abaixo): *Modo Ranqueado : Para quem tem guildas em Grand Chase Emotion sabe bem que deve honrá-lá! então mostre a sua capacidade neste novo modo de jogo que sobrevive apenas as guildas mais fortes. Ao entrar no jogo, verá que teremos um servidor novo. Para entrar nele é necessário ser membro ou possuir uma "Guilda Criada", ao entrar notará que existe diversas divisões e automaticamente por padrão você será da divisão "Bronze", o objetivo é vencer partidas neste servidor para atingir uma divisão maior. E temos uma surpresa mais para frente para quem atingir uma divisão maior :) em breve *3º Classe do Dio, o Leviatã : Dio terá mais habilidades ainda pois terá a sua terceira classe liberada Leviatã em Grand Chase Emotion! *Desafio da Esfinge : Você é bom o suficiente para vencer a esfinge ? descubra futuramente em Grand Chase Emotion! Por enquanto é isso, nos vemos em Grand Chase Emotion! Site Oficial do jogo : Site Oficial Fórum oficial : Fórum Oficial Siga nos em nossa página e fique atento as novidades: Página E para interação com a Staff do jogo, peça para entrar em nosso grupo no facebook
  14. Servidor dedicado só conta original pode entrar. Confira! Server IP: minecraft.craftrio.com.br Site: CraftRio
  15. SERVIDOR [ONLINE] SEASON CHAOS > Nossa Página < > Registro < > Download < O Grand Chase Remember é um servidor que tem características de ter rates baixas, portanto, difícil de upar. A Equipe é a mesma do antigo Resistance que fechou. Decidimos criar esse servidor com o intuito de relembrar os velhos tempos, onde tudo era mais difícil. Informações do servidor: • Taxa de Exp/GP: 1x / 1x • Personagens Iniciais: Somente Elesis, Lire e Arme • Classes Iniciais: 1ª Classe para todos os chars • Personagens disponíveis: Elesis [4a Clasee] Lire [4a Clasee] Arme [4a Clasee] Lass [4a Clasee] Ryan [4a Clasee] Ronan [4a Clasee] Amy [4a Clasee] Jin [4a Clasee] Sieghart [4a Clasee] Mari [4a Clasee] Dio [2a Clasee] Zero [2a Clasee] Rey [2a Clasee] Itens iniciais: • 30 dias de Clube GC; • 2000 de CASH inicial; • 15 dias de Joias da Rainha; • 30 dias de Colar Grand Chase; • 7 dias de 'Anéis de ouro da união' (anel de dupla de CASH) [Chame seus amigos!]; • Set Iniciante; •1 Placa comemorativa Grand Chase Remember. Promoções: •Sistema de recompensa por tempo limitado; •Itens Ellia na loja (Até dia 19/04/2017); • Pet Texugo[item inicial](Até dia 19/04/2017, porém fica para sempre na conta); •Cash Bonificado pela estreia do servidor, na compra de cash, você ganha 15% de cash a mais. Rates: Experiência: 1x GP: 1x É isso, pessoal! Qualquer dúvida, chamar na página! Equipe de GMs Ativa!
  16. Olá povo voltei depois de muito tempo, vim aqui trazer pra vocês um servidor novo sendo inaugurado hoje (12/08/2017) ! IP: polosul.blast.hosting ~Descrição~ Aberto 24 Hrs Servidor com STAFFS totalmente dedicadas! Pirata/Original Vagas na STAFF estão Abertas: [Ajudante] (Divulgue para mais de 20 pessoas) [Moderador] (Consiga a Tag Ajudante e ajude o máximo de pessoas o possível no servidor, assim upando sua Tag) ~Youtuber~ [YoutuberMirim] Tenha 500 Subs e um "bom feed" [Youtuber] Tenha 2000 Subs e "ótimo feed" Site do nosso Servidor: [Hidden Content] Vip em Andamento
  17. Galera vamos jogar o servidor, [Hidden Content] SEASON 2 CASH INICIAL 6000. PERSONAGENS DA ELESIS ATÈ O SIEG COMANDANTE SERVIDOR COM MECANICA OTIMA VAMOS GALERA
  18. Me tirem uma duvida ... Eu to com o nkpo na minha release 756 porem não consigu editar o nick do chat , só o level... E outra.. Existe algum tipo de editor de conta tipo nPEKO Para Wyd 7.56 ?! Se sim... Deem um Re-up ai pra mim pfv... To procurando a semanas isso!
  19. Servidor Season Chaos com itens season v, textura season v , pets season v, algumas missões season v como torre da extinção, rei gosma, berkas , eclipse e muito mais.... Servidor sem LAG com SERVIDORES no brasil Vagas na STAFF SITE COM SISTEMA DE PRESTIGIE, COLETA DE CASH, SISTEMA DE BOLÃO, SISTEMA DE TOKEN E MUITO MAIS ABAIXO NO VÍDEO TEM O EXPLICATIVO. Bom então vamos la fotos e um vídeo bem interativo Renew RONAN Temos ST mari , renew ronan e o UNO haha corre -- Nossa fãn page oficial: [Hidden Content] -- -- Nosso site: [Hidden Content] -- Oque se esta esperando chama seus amigos posta nos grupos do facebook nos seu foruns de jogos no youtube nós ajude precisamos de divulgação por que somos um servidor de que esta desde 2012 como Gc Caos voltamos agora como Hórus na season Chaos e todos conhecem nosso compromentimento garanto um servidor ON Comprometimento com você's trabalho e garanto servidor ON tenho colaborador mais estamos precisando de mais um se você tiver interesse em se comprometer em ser colaborador entre em contato via whatssap 81999660848 terá painel de colaborador
  20. Introdução Grand Chase Hórus é um servidor na versão Season Chaos customizada, com itens, missões e mascotes da Season V. Nosso principal objetivo é trazer de volta aquela animação, diversão e "rivalidade", que existia há alguns anos atrás, com inovações para a melhor jogabilidade de nossos chasers. Informações básicas Rates: Altíssimas Linguagem Oficial: Português BR Cash Inicial: 3000 GP Inicial: 50000 Personagens Elesis (1ª à 4ª classe) Lire (1ª à 4ª classe) Arme (1ª à 4ª classe) Lass (1ª à 4ª classe) Ryan (1ª à 4ª classe) Ronan (1ª à 4ª classe) Amy (1ª à 4ª classe) Jin (1ª à 4ª classe) Sieghart (1ª à 4ª classe) Mari (1ª à 4ª classe) Dio(1ª à 2ª classe) Zero(1ª à 4ª classe) Rey (1ª à 2ª classe) Lupus (1ª à 4ª classe) Obs: Ao criar sua conta, você já recebe totalmente grátis, todos os personagens. Novidades • Sistemas de Prestige Chegue ao level 80, resete seu personagem e receba uma premiação de 80 cash! • Bolão Apostas em placares de jogos com premiação de Cash! • Sistema de Token Resgate excelentes premiações com códigos disponibilizados eventualmente pela equipe GCH! Abaixo alguns vídeos mostrando um pouco de nosso servidor, feitos por mim, [DV]Wiki. Sistema de Recompensas Lojas de Itens e Visuais Nosso site: [Hidden Content] Download (torrent): [Hidden Content] Cadastro: [Hidden Content]/?pg=registro Facebook: [Hidden Content] Grupo do WhatsApp: [Hidden Content]
  21. NEW STAR SERVIDOR OFICIAL UP/PVP Olá senhores, estamos aqui divulgando o nosso servidor do momento "New Star 7.62". Por que do momento? Porque o servidor é tão da hora que não há desigualdade social ;D Os itens estão todos nos npc's e não há donate disponível. Ps: Só em breve OS itens todos podem adquirir, e se você entrar no servidor agora mesmo poderá participar do evento que estará dando itens raros, não fique de fora dessa! ;) ------------------------ Lojas ficam na cidade de armia: Informações: O servidor foi lançado dia 20/05/2017. E tinha diversos bugs que surgiram após o lançamento, mas que já foram corrigidos. Site: [Hidden Content] FanPage: [Hidden Content] Conexão: Sem hamachi, VPS TOOOOP! Sem lag, sem dup, servidor protegido contra hack's! SERVIDOR NOVO E ESTAMOS ACEITANDO TODAS AS SUGESTÕES PARA O APERFEIÇOAMENTO DO NOSSO IN-GAME. Informações In-Game: - Sistema de Guild e War funcionando - HP/MP Ilimitados - Sub Cele (Classe máxima) - Não há desigualdade social (Só há free's no servidor) - Classes balanceadas Atualizações recentes: - Site arrumado - Só há armas celestiais, não há sets - Pet com um limite de lv 250 (Diversas vezes ocorrendo em evento) - Amuletos foram arrumados - Poeira de fada foi adicionado em evento - Sistema de war funcionando Ps: Ninguém tem cidade ainda ;) - Patch foi adicionado - Drop de books nos mob "Pescador" no Deserto - Gráfico do nosso servidor totalmente top! Imagens do nosso gráfico do New Star: Deserto: Duelo de x1: Armia: Sempre quando surge algum bug, tomamos logo as providencias para arruma-lo. O servidor tem 3 staff à disposição de vocês para atendê-los. Suporte totalmente ativo! Atenciosamente Equipe New Star.
  22. Salve galera! Sykesgamer Aqui Não sou desenvolvedor nem nada do game,apenas um Player,esse servidor é novo e resolvi apresentar ele a vocês! Informações Basicas: Rates EXP & GP: 30% Classes Inicial: 1°Classe -Chars Inicial: Elesis á Arme -Evento: Jokenpo - Com os chefes -Sistema de Recompensa (Flubell) -Cash Inicial: 500 (Recarg Sema. 500) -VIP Inicial: 20.000 (Recarg Sema. 1000) Personagens: Elesis - 1° á 4ª Classe Lire - 1° á 4ª Classe Arme - 1° á 4° Classe Lass - 1° á 4ª Classe Ryan - 1° á 4ª Classe Ronan - 1° á 4ª Classe Amy - 1° á 4º Classe Jin - 1° á 4ª Classe Sieg - 1ª á 4° Classe Mari - 1ª á 4° Classe Dio - 1ª e 2° Classe Zero - 1° e 2º Classe Rey - 1° e 2° Classe Links : Facebook : [Hidden Content] Site : [Hidden Content]
  23. Secrets Of de Deus - MUNDO DO MIDGARD Site: www.portalsog.com.br Pagina Facebook: www.facebook.com/PortalSOG Conexão: Sem Hamachi, 24/7 - Sem atraso, erros, servidor protegido POR A-cortar! Preços: Fácil UP / PVP. Informações : Servidor novo sem edits, livre de bugs e hacks. 11 meses online. UP: upa na poeira ou na areas ups.. ou agua e pesa. * EVENTO DE DIA DAS MAES * NPC 1 : Entregue bau do Tesouro I Receba : Barra 1BI Reissurreição Concentração Pac Bau XP 15x Bau do Tesouro II NPC 2 : Entregue bau do Tesouro II Receba : Barra 1BI 5x Livro Forca Espectral Livro Vinha Pac Bau XP 20x Bau do Tesouro III NPC 3 : Entregue bau do Tesouro III Receba : Barra 1BI x10 Cythera Arcanos MG 15 70/30 (Def / MG) Cythera Arcanos DN 15 70/60 (Def / DN) Poção Mental 20hrs 5x Bau do Tesouro IV NPC 4 : Entregue bau do Tesouro IV Receba : Chocolate do Amor 120x Coração Doce 120x Extração Set 50/50 Dn Extração Set 50/25 Mg Bau do Tesouro V NPC 5 : Entregue bau do Tesouro V Receba : Extração Arma DN 120/5 ( DN/CRIT) Extração Arma MG 60/20 ( MG/DEF ) Barra de 1bi X15 Traje Esqueleto 30D Bau do Tesouro RARO
  24. Olá pessoal, venho por meio deste topico informar meu novo projeto de servidor para minecraft. Servidor totalmente começado do Zero! A partir de Hoje estará disponivel 24 hrs por dia. Importante* -- Servidor nao concluido ainda. Coloquei no ar agora para quem se interessar em ajudar, dar feedbacks, e quem se interessa em entrar pra equipe de staffs tambem. Funçoes ja disponiveis: Minerar, sistema de terrenos proprios, dineiro, loja (ainda nao coloca os itens a venda) Funçoes a adicionar: PVP, Minigames, shops vips, clans, mundos e etc. (disponivel a sugestões). IP do server: rochaserver.minecraftbr.net A todos uma boa semana.
  25. Visão geral Vamos analisar quatro aplicações de rede, escritas completamente a partir do zero em Java. Veremos que podemos escrever esses programas sem qualquer conhecimento das tecnologias (que incluem recursos do sistema operacional, roteamento entre redes, pesquisa de endereços, mídia de transmissão física, etc.) Cada um desses aplicativos usa o paradigma cliente-servidor, que é Um programa, chamado de blocos de servidor à espera de um cliente para se conectar a ele Um cliente conecta-se O servidor e o cliente trocam informações até que elas estejam concluídas O cliente e o servidor fecham a conexão As únicas informações de fundo que você precisa são: Os hosts têm portas, numeradas de 0-65535. Os servidores ouvem em uma porta. Alguns números de porta são reservados para que você não possa usá-los quando você escreve seu próprio servidor. Vários clientes podem se comunicar com um servidor em uma determinada porta. Cada conexão de cliente é atribuída um soquete separado nessa porta. Os aplicativos cliente obtêm uma porta e um soquete na máquina cliente quando se conectam com êxito a um servidor. As quatro aplicações são Um servidor de data trivial e cliente, ilustrando a comunicação unidirecional simples. O servidor envia dados somente para o cliente. Um servidor de capitalização de cliente, ilustrando comunicação bidirecional. Uma vez que o diálogo entre o cliente e o servidor pode compreender um número ilimitado de mensagens para frente e para trás, o servidor é encadeado para atender a vários clientes de forma eficiente. Um jogo da velha de dois jogadores, ilustrando um servidor que precisa acompanhar o estado de um jogo, e informar cada cliente dele, para que eles possam atualizar seus próprios monitores. Um aplicativo de bate-papo multiusuário, no qual um servidor deve transmitir mensagens para todos os seus clientes. Um Servidor de Client O Server [spoiler=DateServer.java] package edu.lmu.cs.networking; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; /** * A TCP server that runs on port 9090. When a client connects, it * sends the client the current date and time, then closes the * connection with that client. Arguably just about the simplest * server you can write. */ public class DateServer { /** * Runs the server. */ public static void main(String[] args) throws IOException { ServerSocket listener = new ServerSocket(9090); try { while (true) { Socket socket = listener.accept(); try { PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.println(new Date().toString()); } finally { socket.close(); } } } finally { listener.close(); } } } O cliente [spoiler=DateClient.java] [spoiler=DateClient.java] package edu.lmu.cs.networking; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import javax.swing.JOptionPane; /** * Trivial client for the date server. */ public class DateClient { /** * Runs the client as an application. First it displays a dialog * box asking for the IP address or hostname of a host running * the date server, then connects to it and displays the date that * it serves. */ public static void main(String[] args) throws IOException { String serverAddress = JOptionPane.showInputDialog( "Enter IP Address of a machine that is\n" + "running the date service on port 9090:"); Socket s = new Socket(serverAddress, 9090); BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); String answer = input.readLine(); JOptionPane.showMessageDialog(null, answer); System.exit(0); } } Um servidor de capitalização e cliente O Server [spoiler=CapitalizeServer.java] package edu.lmu.cs.networking; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * A server program which accepts requests from clients to * capitalize strings. When clients connect, a new thread is * started to handle an interactive dialog in which the client * sends in a string and the server thread sends back the * capitalized version of the string. * * The program is runs in an infinite loop, so shutdown in platform * dependent. If you ran it from a console window with the "java" * interpreter, Ctrl+C generally will shut it down. */ public class CapitalizeServer { /** * Application method to run the server runs in an infinite loop * listening on port 9898. When a connection is requested, it * spawns a new thread to do the servicing and immediately returns * to listening. The server keeps a unique client number for each * client that connects just to show interesting logging * messages. It is certainly not necessary to do this. */ public static void main(String[] args) throws Exception { System.out.println("The capitalization server is running."); int clientNumber = 0; ServerSocket listener = new ServerSocket(9898); try { while (true) { new Capitalizer(listener.accept(), clientNumber++).start(); } } finally { listener.close(); } } /** * A private thread to handle capitalization requests on a particular * socket. The client terminates the dialogue by sending a single line * containing only a period. */ private static class Capitalizer extends Thread { private Socket socket; private int clientNumber; public Capitalizer(Socket socket, int clientNumber) { this.socket = socket; this.clientNumber = clientNumber; log("New connection with client# " + clientNumber + " at " + socket); } /** * Services this thread's client by first sending the * client a welcome message then repeatedly reading strings * and sending back the capitalized version of the string. */ public void run() { try { // Decorate the streams so we can send characters // and not just bytes. Ensure output is flushed // after every newline. BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // Send a welcome message to the client. out.println("Hello, you are client #" + clientNumber + "."); out.println("Enter a line with only a period to quit\n"); // Get messages from the client, line by line; return them // capitalized while (true) { String input = in.readLine(); if (input == null || input.equals(".")) { break; } out.println(input.toUpperCase()); } } catch (IOException e) { log("Error handling client# " + clientNumber + ": " + e); } finally { try { socket.close(); } catch (IOException e) { log("Couldn't close a socket, what's going on?"); } log("Connection with client# " + clientNumber + " closed"); } } /** * Logs a simple message. In this case we just write the * message to the server applications standard output. */ private void log(String message) { System.out.println(message); } } } O Cliente [spoiler=CapitalizeClient.java] package edu.lmu.cs.networking; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; /** * A simple Swing-based client for the capitalization server. * It has a main frame window with a text field for entering * strings and a textarea to see the results of capitalizing * them. */ public class CapitalizeClient { private BufferedReader in; private PrintWriter out; private JFrame frame = new JFrame("Capitalize Client"); private JTextField dataField = new JTextField(40); private JTextArea messageArea = new JTextArea(8, 60); /** * Constructs the client by laying out the GUI and registering a * listener with the textfield so that pressing Enter in the * listener sends the textfield contents to the server. */ public CapitalizeClient() { // Layout GUI messageArea.setEditable(false); frame.getContentPane().add(dataField, "North"); frame.getContentPane().add(new JScrollPane(messageArea), "Center"); // Add Listeners dataField.addActionListener(new ActionListener() { /** * Responds to pressing the enter key in the textfield * by sending the contents of the text field to the * server and displaying the response from the server * in the text area. If the response is "." we exit * the whole application, which closes all sockets, * streams and windows. */ public void actionPerformed(ActionEvent e) { out.println(dataField.getText()); String response; try { response = in.readLine(); if (response == null || response.equals("")) { System.exit(0); } } catch (IOException ex) { response = "Error: " + ex; } messageArea.append(response + "\n"); dataField.selectAll(); } }); } /** * Implements the connection logic by prompting the end user for * the server's IP address, connecting, setting up streams, and * consuming the welcome messages from the server. The Capitalizer * protocol says that the server sends three lines of text to the * client immediately after establishing a connection. */ public void connectToServer() throws IOException { // Get the server address from a dialog box. String serverAddress = JOptionPane.showInputDialog( frame, "Enter IP Address of the Server:", "Welcome to the Capitalization Program", JOptionPane.QUESTION_MESSAGE); // Make connection and initialize streams Socket socket = new Socket(serverAddress, 9898); in = new BufferedReader( new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); // Consume the initial welcoming messages from the server for (int i = 0; i < 3; i++) { messageArea.append(in.readLine() + "\n"); } } /** * Runs the client application. */ public static void main(String[] args) throws Exception { CapitalizeClient client = new CapitalizeClient(); client.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); client.frame.pack(); client.frame.setVisible(true); client.connectToServer(); } } Um jogo da velha de dois jogadores O Server [spoiler=TicTacToeServer.java] package edu.lmu.cs.networking; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * A server for a network multi-player tic tac toe game. Modified and * extended from the class presented in Deitel and Deitel "Java How to * Program" book. I made a bunch of enhancements and rewrote large sections * of the code. The main change is instead of passing *data* between the * client and server, I made a TTTP (tic tac toe protocol) which is totally * plain text, so you can test the game with Telnet (always a good idea.) * The strings that are sent in TTTP are: * * Client -> Server Server -> Client * ---------------- ---------------- * MOVE <n> (0 <= n <= 8) WELCOME <char> (char in {X, O}) * QUIT VALID_MOVE * OTHER_PLAYER_MOVED <n> * VICTORY * DEFEAT * TIE * MESSAGE <text> * * A second change is that it allows an unlimited number of pairs of * players to play. */ public class TicTacToeServer { /** * Runs the application. Pairs up clients that connect. */ public static void main(String[] args) throws Exception { ServerSocket listener = new ServerSocket(8901); System.out.println("Tic Tac Toe Server is Running"); try { while (true) { Game game = new Game(); Game.Player playerX = game.new Player(listener.accept(), 'X'); Game.Player playerO = game.new Player(listener.accept(), 'O'); playerX.setOpponent(playerO); playerO.setOpponent(playerX); game.currentPlayer = playerX; playerX.start(); playerO.start(); } } finally { listener.close(); } } } /** * A two-player game. */ class Game { /** * A board has nine squares. Each square is either unowned or * it is owned by a player. So we use a simple array of player * references. If null, the corresponding square is unowned, * otherwise the array cell stores a reference to the player that * owns it. */ private Player[] board = { null, null, null, null, null, null, null, null, null}; /** * The current player. */ Player currentPlayer; /** * Returns whether the current state of the board is such that one * of the players is a winner. */ public boolean hasWinner() { return (board[0] != null && board[0] == board[1] && board[0] == board[2]) ||(board[3] != null && board[3] == board[4] && board[3] == board[5]) ||(board[6] != null && board[6] == board[7] && board[6] == board[8]) ||(board[0] != null && board[0] == board[3] && board[0] == board[6]) ||(board[1] != null && board[1] == board[4] && board[1] == board[7]) ||(board[2] != null && board[2] == board[5] && board[2] == board[8]) ||(board[0] != null && board[0] == board[4] && board[0] == board[8]) ||(board[2] != null && board[2] == board[4] && board[2] == board[6]); } /** * Returns whether there are no more empty squares. */ public boolean boardFilledUp() { for (int i = 0; i < board.length; i++) { if (board[i] == null) { return false; } } return true; } /** * Called by the player threads when a player tries to make a * move. This method checks to see if the move is legal: that * is, the player requesting the move must be the current player * and the square in which she is trying to move must not already * be occupied. If the move is legal the game state is updated * (the square is set and the next player becomes current) and * the other player is notified of the move so it can update its * client. */ public synchronized boolean legalMove(int location, Player player) { if (player == currentPlayer && board[location] == null) { board[location] = currentPlayer; currentPlayer = currentPlayer.opponent; currentPlayer.otherPlayerMoved(location); return true; } return false; } /** * The class for the helper threads in this multithreaded server * application. A Player is identified by a character mark * which is either 'X' or 'O'. For communication with the * client the player has a socket with its input and output * streams. Since only text is being communicated we use a * reader and a writer. */ class Player extends Thread { char mark; Player opponent; Socket socket; BufferedReader input; PrintWriter output; /** * Constructs a handler thread for a given socket and mark * initializes the stream fields, displays the first two * welcoming messages. */ public Player(Socket socket, char mark) { this.socket = socket; this.mark = mark; try { input = new BufferedReader( new InputStreamReader(socket.getInputStream())); output = new PrintWriter(socket.getOutputStream(), true); output.println("WELCOME " + mark); output.println("MESSAGE Waiting for opponent to connect"); } catch (IOException e) { System.out.println("Player died: " + e); } } /** * Accepts notification of who the opponent is. */ public void setOpponent(Player opponent) { this.opponent = opponent; } /** * Handles the otherPlayerMoved message. */ public void otherPlayerMoved(int location) { output.println("OPPONENT_MOVED " + location); output.println( hasWinner() ? "DEFEAT" : boardFilledUp() ? "TIE" : ""); } /** * The run method of this thread. */ public void run() { try { // The thread is only started after everyone connects. output.println("MESSAGE All players connected"); // Tell the first player that it is her turn. if (mark == 'X') { output.println("MESSAGE Your move"); } // Repeatedly get commands from the client and process them. while (true) { String command = input.readLine(); if (command.startsWith("MOVE")) { int location = Integer.parseInt(command.substring(5)); if (legalMove(location, this)) { output.println("VALID_MOVE"); output.println(hasWinner() ? "VICTORY" : boardFilledUp() ? "TIE" : ""); } else { output.println("MESSAGE ?"); } } else if (command.startsWith("QUIT")) { return; } } } catch (IOException e) { System.out.println("Player died: " + e); } finally { try {socket.close();} catch (IOException e) {} } } } } O Cliente [spoiler=TicTacToeClient.java] package edu.lmu.cs.networking; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; /** * A client for the TicTacToe game, modified and extended from the * class presented in Deitel and Deitel "Java How to Program" book. * I made a bunch of enhancements and rewrote large sections of the * code. In particular I created the TTTP (Tic Tac Toe Protocol) * which is entirely text based. Here are the strings that are sent: * * Client -> Server Server -> Client * ---------------- ---------------- * MOVE <n> (0 <= n <= 8) WELCOME <char> (char in {X, O}) * QUIT VALID_MOVE * OTHER_PLAYER_MOVED <n> * VICTORY * DEFEAT * TIE * MESSAGE <text> * */ public class TicTacToeClient { private JFrame frame = new JFrame("Tic Tac Toe"); private JLabel messageLabel = new JLabel(""); private ImageIcon icon; private ImageIcon opponentIcon; private Square[] board = new Square[9]; private Square currentSquare; private static int PORT = 8901; private Socket socket; private BufferedReader in; private PrintWriter out; /** * Constructs the client by connecting to a server, laying out the * GUI and registering GUI listeners. */ public TicTacToeClient(String serverAddress) throws Exception { // Setup networking socket = new Socket(serverAddress, PORT); in = new BufferedReader(new InputStreamReader( socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); // Layout GUI messageLabel.setBackground(Color.lightGray); frame.getContentPane().add(messageLabel, "South"); JPanel boardPanel = new JPanel(); boardPanel.setBackground(Color.black); boardPanel.setLayout(new GridLayout(3, 3, 2, 2)); for (int i = 0; i < board.length; i++) { final int j = i; board[i] = new Square(); board[i].addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { currentSquare = board[j]; out.println("MOVE " + j);}}); boardPanel.add(board[i]); } frame.getContentPane().add(boardPanel, "Center"); } /** * The main thread of the client will listen for messages * from the server. The first message will be a "WELCOME" * message in which we receive our mark. Then we go into a * loop listening for "VALID_MOVE", "OPPONENT_MOVED", "VICTORY", * "DEFEAT", "TIE", "OPPONENT_QUIT or "MESSAGE" messages, * and handling each message appropriately. The "VICTORY", * "DEFEAT" and "TIE" ask the user whether or not to play * another game. If the answer is no, the loop is exited and * the server is sent a "QUIT" message. If an OPPONENT_QUIT * message is recevied then the loop will exit and the server * will be sent a "QUIT" message also. */ public void play() throws Exception { String response; try { response = in.readLine(); if (response.startsWith("WELCOME")) { char mark = response.charAt(8); icon = new ImageIcon(mark == 'X' ? "x.gif" : "o.gif"); opponentIcon = new ImageIcon(mark == 'X' ? "o.gif" : "x.gif"); frame.setTitle("Tic Tac Toe - Player " + mark); } while (true) { response = in.readLine(); if (response.startsWith("VALID_MOVE")) { messageLabel.setText("Valid move, please wait"); currentSquare.setIcon(icon); currentSquare.repaint(); } else if (response.startsWith("OPPONENT_MOVED")) { int loc = Integer.parseInt(response.substring(15)); board[loc].setIcon(opponentIcon); board[loc].repaint(); messageLabel.setText("Opponent moved, your turn"); } else if (response.startsWith("VICTORY")) { messageLabel.setText("You win"); break; } else if (response.startsWith("DEFEAT")) { messageLabel.setText("You lose"); break; } else if (response.startsWith("TIE")) { messageLabel.setText("You tied"); break; } else if (response.startsWith("MESSAGE")) { messageLabel.setText(response.substring(8)); } } out.println("QUIT"); } finally { socket.close(); } } private boolean wantsToPlayAgain() { int response = JOptionPane.showConfirmDialog(frame, "Want to play again?", "Tic Tac Toe is Fun Fun Fun", JOptionPane.YES_NO_OPTION); frame.dispose(); return response == JOptionPane.YES_OPTION; } /** * Graphical square in the client window. Each square is * a white panel containing. A client calls setIcon() to fill * it with an Icon, presumably an X or O. */ static class Square extends JPanel { JLabel label = new JLabel((Icon)null); public Square() { setBackground(Color.white); add(label); } public void setIcon(Icon icon) { label.setIcon(icon); } } /** * Runs the client as an application. */ public static void main(String[] args) throws Exception { while (true) { String serverAddress = (args.length == 0) ? "localhost" : args[1]; TicTacToeClient client = new TicTacToeClient(serverAddress); client.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); client.frame.setSize(240, 160); client.frame.setVisible(true); client.frame.setResizable(false); client.play(); if (!client.wantsToPlayAgain()) { break; } } } } Um aplicativo de bate-papo para vários usuários O Server [spoiler=ChatServer.java] package edu.lmu.cs.networking; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.HashSet; /** * A multithreaded chat room server. When a client connects the * server requests a screen name by sending the client the * text "SUBMITNAME", and keeps requesting a name until * a unique one is received. After a client submits a unique * name, the server acknowledges with "NAMEACCEPTED". Then * all messages from that client will be broadcast to all other * clients that have submitted a unique screen name. The * broadcast messages are prefixed with "MESSAGE ". * * Because this is just a teaching example to illustrate a simple * chat server, there are a few features that have been left out. * Two are very useful and belong in production code: * * 1. The protocol should be enhanced so that the client can * send clean disconnect messages to the server. * * 2. The server should do some logging. */ public class ChatServer { /** * The port that the server listens on. */ private static final int PORT = 9001; /** * The set of all names of clients in the chat room. Maintained * so that we can check that new clients are not registering name * already in use. */ private static HashSet<String> names = new HashSet<String>(); /** * The set of all the print writers for all the clients. This * set is kept so we can easily broadcast messages. */ private static HashSet<PrintWriter> writers = new HashSet<PrintWriter>(); /** * The appplication main method, which just listens on a port and * spawns handler threads. */ public static void main(String[] args) throws Exception { System.out.println("The chat server is running."); ServerSocket listener = new ServerSocket(PORT); try { while (true) { new Handler(listener.accept()).start(); } } finally { listener.close(); } } /** * A handler thread class. Handlers are spawned from the listening * loop and are responsible for a dealing with a single client * and broadcasting its messages. */ private static class Handler extends Thread { private String name; private Socket socket; private BufferedReader in; private PrintWriter out; /** * Constructs a handler thread, squirreling away the socket. * All the interesting work is done in the run method. */ public Handler(Socket socket) { this.socket = socket; } /** * Services this thread's client by repeatedly requesting a * screen name until a unique one has been submitted, then * acknowledges the name and registers the output stream for * the client in a global set, then repeatedly gets inputs and * broadcasts them. */ public void run() { try { // Create character streams for the socket. in = new BufferedReader(new InputStreamReader( socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); // Request a name from this client. Keep requesting until // a name is submitted that is not already used. Note that // checking for the existence of a name and adding the name // must be done while locking the set of names. while (true) { out.println("SUBMITNAME"); name = in.readLine(); if (name == null) { return; } synchronized (names) { if (!names.contains(name)) { names.add(name); break; } } } // Now that a successful name has been chosen, add the // socket's print writer to the set of all writers so // this client can receive broadcast messages. out.println("NAMEACCEPTED"); writers.add(out); // Accept messages from this client and broadcast them. // Ignore other clients that cannot be broadcasted to. while (true) { String input = in.readLine(); if (input == null) { return; } for (PrintWriter writer : writers) { writer.println("MESSAGE " + name + ": " + input); } } } catch (IOException e) { System.out.println(e); } finally { // This client is going down! Remove its name and its print // writer from the sets, and close its socket. if (name != null) { names.remove(name); } if (out != null) { writers.remove(out); } try { socket.close(); } catch (IOException e) { } } } } } O Cliente [spoiler=ChatClient.java] package edu.lmu.cs.networking; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; /** * A simple Swing-based client for the chat server. Graphically * it is a frame with a text field for entering messages and a * textarea to see the whole dialog. * * The client follows the Chat Protocol which is as follows. * When the server sends "SUBMITNAME" the client replies with the * desired screen name. The server will keep sending "SUBMITNAME" * requests as long as the client submits screen names that are * already in use. When the server sends a line beginning * with "NAMEACCEPTED" the client is now allowed to start * sending the server arbitrary strings to be broadcast to all * chatters connected to the server. When the server sends a * line beginning with "MESSAGE " then all characters following * this string should be displayed in its message area. */ public class ChatClient { BufferedReader in; PrintWriter out; JFrame frame = new JFrame("Chatter"); JTextField textField = new JTextField(40); JTextArea messageArea = new JTextArea(8, 40); /** * Constructs the client by laying out the GUI and registering a * listener with the textfield so that pressing Return in the * listener sends the textfield contents to the server. Note * however that the textfield is initially NOT editable, and * only becomes editable AFTER the client receives the NAMEACCEPTED * message from the server. */ public ChatClient() { // Layout GUI textField.setEditable(false); messageArea.setEditable(false); frame.getContentPane().add(textField, "North"); frame.getContentPane().add(new JScrollPane(messageArea), "Center"); frame.pack(); // Add Listeners textField.addActionListener(new ActionListener() { /** * Responds to pressing the enter key in the textfield by sending * the contents of the text field to the server. Then clear * the text area in preparation for the next message. */ public void actionPerformed(ActionEvent e) { out.println(textField.getText()); textField.setText(""); } }); } /** * Prompt for and return the address of the server. */ private String getServerAddress() { return JOptionPane.showInputDialog( frame, "Enter IP Address of the Server:", "Welcome to the Chatter", JOptionPane.QUESTION_MESSAGE); } /** * Prompt for and return the desired screen name. */ private String getName() { return JOptionPane.showInputDialog( frame, "Choose a screen name:", "Screen name selection", JOptionPane.PLAIN_MESSAGE); } /** * Connects to the server then enters the processing loop. */ private void run() throws IOException { // Make connection and initialize streams String serverAddress = getServerAddress(); Socket socket = new Socket(serverAddress, 9001); in = new BufferedReader(new InputStreamReader( socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); // Process all messages from server, according to the protocol. while (true) { String line = in.readLine(); if (line.startsWith("SUBMITNAME")) { out.println(getName()); } else if (line.startsWith("NAMEACCEPTED")) { textField.setEditable(true); } else if (line.startsWith("MESSAGE")) { messageArea.append(line.substring(8) + "\n"); } } } /** * Runs the client as an application with a closeable frame. */ public static void main(String[] args) throws Exception { ChatClient client = new ChatClient(); client.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); client.frame.setVisible(true); client.run(); } } Fonte: [Hidden Content]
×
×
  • Create New...