Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема в написании программы (морской бой) 
:(
    Опции темы
kric
Дата 5.10.2006, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Сталкнулся с проблемой. Нужно написать программу- морской бой, которая реализована как клиент-сервер. Суть программы, 2 клиента, сервер и обмен данными между ними. 

т.к. я новечек в написаннии токого типа программ, буду благодарен всем кто поможит мне с основной частью. т.е. создание клиента, сервера, а так же реализация обмена данными между ними...
PM MAIL   Вверх
LSD
Дата 5.10.2006, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Что подразумевается под "поможет"? Посоветовать что использовать, и что почитать на эту тему, или написать за тебя?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 5.10.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Вот этих трех статей тебе будет достаточно: http://java.sun.com/docs/books/tutorial/ne...kets/index.html


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
kric
Дата 5.10.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



Цитата(LSD @ 5.10.2006,  11:43)
Что подразумевается под "поможет"? Посоветовать что использовать, и что почитать на эту тему, или написать за тебя?

Eto podrazumevaetsia i to i drugoe, t.e. 
1. Ja ne proshu nikogo polnostju pisat' dlia menia ves' kod programy...
2. Ja blagodaren dazhe za sovet s cego nachat' i kak vsio eto sledovalo by pisat'...
3. Ja dumaju mnogie iz vas imejut standartnye primery clienta-servera, bez kakix libo navarotov...

P.S. batigoal > blagodarstvuju za link...
P.P.S. sorry za moju latin`u, prosto na kirilice ochen' medleno pishu... ;)
PM MAIL   Вверх
LSD
Дата 5.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



1. Используй чекбокс транслит.

2. Если и клиент и сервер будут на Java, то я бы предложил использовать RMI. Это гораздо проще чем придумывать свой протокол на основе TCP/IP.
Пример использования RMI, Вызов удаленных методов - этих примеров вполне достаточно для реализации клиент-серверного взаимодействия.

С GUI в Java знаком?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
kric
Дата 6.10.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



LSD> s GUI ja znakom, t.k. s  graficheskimi interfejsami ja uzhe ciutok rabotal. Xotia v dannom zadanii mne etogo ne osobo trebuetsia. Vsio mozhet byt' realizovano v prostoj komandnoj stroke, samymi prostymi metadami. Klient i server v dannom sluchaii budut na JAVA. Za link`i ogromnejshoe spasibo smile 
PM MAIL   Вверх
tab
Дата 8.10.2006, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 7.10.2006
Где: RF, Dolgopa

Репутация: нет
Всего: нет



Лично мне по всем этим вещам нравиться книга "Программирование для Интернет на Java" издательства Питер.
Там все просто и понятно smile 
PM MAIL   Вверх
batigoal
Дата 8.10.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Цитата(tab @  8.10.2006,  01:59 Найти цитируемый пост)
Лично мне по всем этим вещам нравиться книга "Программирование для Интернет на Java" издательства Питер.

Ссылка у меня не открывается, но если это та книга, о которой я думаю, то мне она не понравилась.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
kric
Дата 8.10.2006, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.10.2006

Репутация: нет
Всего: нет



V dannyj moment u menia est' prostejshij SERVER i CLIENT. Vozniklo paru voprosov:
1. Kak sdelat', ctoby vvodimaja informacija s odnogo klienta otobrazhalas' u drugogo klienta, a ne na servere.
2. Planiruju sdelat':  zapustiv klienta, nado budet vvesti vse koordinaty korablej. Vopros zakliuchaetsia v tom, kak na vash vzgliad optimalnej delat', ctoby vse koordinaty korablej xranilis' u klienta ili vvedia ix perekinut' na server. T.E. vo vremia igry uzhe obmenivatsia dannemy tol'ko s serverom ili client s clientom?
3. Kak vy dumaete mozhno li optimizirovat' dannuju chast' server`a, mozhet optimal'nej tut delat' s for(;;), ctoby byl 1 socket 
Код

     try {
    
        Socket socket1 = s.accept();
        System.out.println("Connected to the first client.");
    
        try {
        new EchoServe(socket1);
        } catch(IOException e) {
          socket1.close();
          }  

        Socket socket2 = s.accept();  
        System.out.println("Connected to the second client.");
        try { 
        new EchoServe(socket2); 
        } catch(IOException e) {
          socket2.close();
          }  
     } finally {
      s.close();
     }





SERVER
Код

// server.java
// SYNOPSIS:       java server 
// DESCRIPTION:    server 
////////////////////////////////////////////////////////////////////////////

import java.net.*;
import java.io.*;

class EchoServe extends Thread {
  public static int Alive=2;
  private Socket socket;
  private BufferedReader in;
  private PrintWriter out;
  
  public EchoServe (Socket s) throws IOException {
    socket = s;
    System.out.println("Serving: "+socket); 
    in = 
      new BufferedReader(
        new InputStreamReader(
          socket.getInputStream()));
    out = 
      new PrintWriter(
        new BufferedWriter(
          new OutputStreamWriter(
            socket.getOutputStream())), true);
    start();
  }
  
    public void run() {
        try {
            for ( ;;) {  
        String str = in.readLine();
        if ((str.equals ("null"))||(str.equals ("END"))) break;   
        System.out.println("   Received: " + str);
        //System.out.println("   From: " + socket);
        out.println(str);
            }
        }catch (NullPointerException e) {}
         catch (IOException e) {} 
         finally {
         try {
      Alive =Alive -1;
      System.out.println("Disconnected with..."+socket);
      if (Alive==0) System.out.println("Both clients are done...exiting...");
      socket.close();
            }   
         catch(IOException e) {}
        }
    }
}

public class server {  
  public static void main(String[] args)
      throws IOException {
      
     ServerSocket s = new ServerSocket(4444); // tut byl 0
     InetAddress  addrs= InetAddress.getLocalHost();                                                                
     System.out.println("TCP/Server running on : "+ addrs +" ,Port "+s.getLocalPort());
     System.out.println("...Waiting for a Connection...");
     try {
    
        Socket socket1 = s.accept();
        System.out.println("Connected to the first client.");
    
        try {
        new EchoServe(socket1);
        } catch(IOException e) {
          socket1.close();
          }  

        Socket socket2 = s.accept();  
        System.out.println("Connected to the second client.");
        try { 
        new EchoServe(socket2); 
        } catch(IOException e) {
          socket2.close();
          }  
     } finally {
      s.close();
     }
  } 
}


CLIENT
Код

// client.java
// SYNOPSIS:       java client <hostid> <portnumber> 
// DESCRIPTION:    client 
////////////////////////////////////////////////////////////////////////////

import java.net.*;
import java.io.*;

public class client {
  public static void main(String[] args) 
      throws IOException {
      if (args.length != 2) {
                System.out.println("Usage: java TCPClient  hostid port#");
                System.exit(0);
      }

      try {   
      InetAddress addr =
      InetAddress.getByName(args[0]); 
      //InetAddress.getByName("localhost");
      //InetAddress.getByName("127.0.0.1");
    
      Socket socket = 
      new Socket(addr, Integer.parseInt(args[1]));
 
      try {
      System.out.println("socket = " + socket);
      BufferedReader in =
        new BufferedReader(
          new InputStreamReader(
            socket.getInputStream()));

      PrintWriter out =
        new PrintWriter(
          new BufferedWriter(
            new OutputStreamWriter(
              socket.getOutputStream())),true);

      DataInputStream myinput =
      new DataInputStream(
          new BufferedInputStream(System.in));
      try {
          for(;;)
          {
          System.out.println("Iveskite norima informacija / Enter string");
          String strin=myinput.readLine();  
          if (strin ==null) break;
             else 
                 out.println(strin);             // Send the message 
          String strout = in.readLine();         // Recive it back
          if ( strin.length()==strout.length()){  // Compare Both Strings
          //System.out.println("Echo is good");
          System.out.println("Received: "+strout);
          } 
           else  System.out.println("Echo bad -- string unequal"+ strout);
          }
        
      }catch (IOException e){
        e.printStackTrace();
      }
    // User is exiting
    } finally {
      System.out.println("EOF...exit");
      socket.close();
    }
      
  } catch(UnknownHostException e){
      System.err.println("Can't find host");
      System.exit(1);
  } catch (SocketException e){
     System.err.println("Can't open socket");
     e.printStackTrace();
     System.exit(1);
                            }
  }                       
}

PM MAIL   Вверх
PavelUSA
Дата 16.10.2007, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2005
Где: Москва-->Сили коновая Долина

Репутация: нет
Всего: нет



Цитата(kric @ 5.10.2006,  17:54)
P.P.S. sorry za moju latin`u, prosto na kirilice ochen' medleno pishu... ;)



Это - попросту заблуждение, основанное на НЕверном предположении, что

................... "писать по-русски, кириллицей"

означает вводить именно с той раскладкой (расположением букв), что включена в поставку Windows - вот с такой картинкой: http://www.microsoft.com/globaldev/keyboards/kbdru.htm

Но это совершенно НЕ так, что могут подтвердить сотни тысяч бывших граждан СССР, живущих вне СНГ.

См. http://forum.vingrad.ru/index.php?showtopi...t&p=1288514

 smile 

Это сообщение отредактировал(а) PavelUSA - 16.10.2007, 02:49
PM WWW   Вверх
nornad
Дата 16.10.2007, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



PavelUSA, ты в следующий раз на дату последнего сообщения внимание обращай - больше года уж прошло. smile smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
PavelUSA
Дата 16.10.2007, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2005
Где: Москва-->Сили коновая Долина

Репутация: нет
Всего: нет



Шорт побери  smile  - был уверен, что от прошлой недели - 5 октября! Удалить?

Это сообщение отредактировал(а) PavelUSA - 16.10.2007, 03:41
PM WWW   Вверх
batigoal
Дата 16.10.2007, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 2
Всего: 151



Удалять не надо, это не криминал. Просто учесть на будущее.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.