| 
				
				Игра по сети
				 | 
 | 
| Edison6 | Дата: Среда, 09 Января 2013, 14:13 | Сообщение # 1 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | Здравствуйте форумчане хотел бы у вас спросить что я не так сделал?Я хотел написать чтобы спрайт ставился на те координаты которые я передам, но для начала просто сообщение послываю но оно не работает   Вот код:   Код import java.io.DataInputStream;   import java.io.DataOutputStream;   import java.io.IOException;   import java.io.InputStream;   import java.io.OutputStream;   import java.net.ServerSocket;   import java.net.Socket; 
   import org.newdawn.slick.AppGameContainer;   import org.newdawn.slick.BasicGame;   import org.newdawn.slick.GameContainer;   import org.newdawn.slick.Graphics;   import org.newdawn.slick.SlickException;     
   public class Game extends BasicGame {    public Game(String title) { super(title); }        static String Message;    static int port = 65534;    static String line;    static DataInputStream in;    static DataOutputStream out;    public static void main(String[] args) throws SlickException, IOException    {     AppGameContainer app = new AppGameContainer(new Game("Test Game"));     app.setDisplayMode(1440, 900, false);     app.start();    }        @Override    public void render(GameContainer container, Graphics g)    throws SlickException    {     g.drawString("Message : "+line, 0, 20);    }        @Override    public void init(GameContainer container) throws SlickException    {     try      {     ServerSocket ss = new ServerSocket(port);     Socket socket = ss.accept();     System.out.println("Client connected!");     InputStream sin = null;     sin = socket.getInputStream();     OutputStream sout = null;     sout = socket.getOutputStream();     in = new DataInputStream(sin);     out = new DataOutputStream(sout);     line = null;     }     catch (IOException e)     {      e.printStackTrace();     }    }        @Override    public void update(GameContainer container, int delta) throws SlickException     {     try {      line = in.readUTF();     } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();     }     }   }     Это клиент   Код import java.net.*;   import java.io.*; 
   public class Client {    public static void main(String[] ar)    {     int serverPort = 65534;      String address = "127.0.0.1";      try      {      InetAddress ipAddress = InetAddress.getByName(address);       System.out.println("Any of you heard of a socket with IP address " + address + " and port " + serverPort + "?");      Socket socket = new Socket(ipAddress, serverPort);      System.out.println("Yes! I just got hold of the program.");            InputStream sin = socket.getInputStream();      OutputStream sout = socket.getOutputStream();      DataInputStream in = new DataInputStream(sin);      DataOutputStream out = new DataOutputStream(sout);            BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));            String line = null;      System.out.println("Type in something and press enter. Will send it to the server and tell ya what it thinks.");      System.out.println();      while (true)       {       line = keyboard.readLine();             System.out.println("Sending this line to the server...");       out.writeUTF(line);        out.flush();       line = in.readUTF();        System.out.println("The server was very polite. It sent me this : " + line);       System.out.println("Looks like the server is pleased with us. Go ahead and enter more lines.");       System.out.println();      }     }      catch (Exception x)     {      x.printStackTrace();     }    }   } Добавлено (08.01.2013, 21:43) --------------------------------------------- Игра падает Добавлено (08.01.2013, 22:42) --------------------------------------------- Использую SLICK2D Добавлено (09.01.2013, 14:13) --------------------------------------------- Я так понял помочь некому.... 
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| MDKed | Дата: Среда, 09 Января 2013, 14:30 | Сообщение # 2 |  
 
частый гость 
Сейчас нет на сайте 
 
 | Edison6, я для сетевых взаимодействий использую KryoNet - прост в освоении и лёгок в употреблении, попробуй его.
  Стою на асфальте я в лыжи обутый.   То ли лыжи не едут, то ли я баганутый.   "O-Wars"
 |  
| 
 | 
 |    | 
| Edison6 | Дата: Среда, 09 Января 2013, 16:46 | Сообщение # 3 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | MDKed, а если без использования билблиотек не знаешь в чем может быть проблема? Добавлено (09.01.2013, 16:46) --------------------------------------------- Пробую CryoNet       и код сервера    Код import java.io.IOException; 
   import com.esotericsoftware.kryo.Kryo;   import com.esotericsoftware.kryonet.*; 
   public class JServer { 
    public static void main(String[] ar) throws IOException    {     Server server = new Server();     server.start();     server.bind(50000, 50001);     server.addListener(new Listener()      {        public void received (Connection connection, Object object)      {         if (object instanceof SomeRequest) {          SomeRequest request = (SomeRequest)object;            System.out.println(request.text);               SomeResponse response = new SomeResponse();          response.text = "Thanks!";               connection.sendTCP(response);             }        }      });     Kryo kryo = server.getKryo();     kryo.register(SomeRequest.class);     kryo.register(SomeResponse.class);    }   }        Вот код клиента:   Код import java.io.IOException; 
   import com.esotericsoftware.kryo.Kryo;   import com.esotericsoftware.kryonet.*; 
   public class JClient   {    public static void main(String[] ar) throws IOException    {     Client client = new Client();     client.start();     client.connect(2015, "127.0.0.1", 50000, 50001);     SomeRequest request = new SomeRequest();     request.text = "Here is the request!";     client.sendTCP(request);     client.addListener(new Listener()      {        public void received (Connection connection, Object object)      {           if (object instanceof SomeResponse)        {               SomeResponse response = (SomeResponse)object;           System.out.println(response.text);           }         }      }     );     Kryo kryo = client.getKryo();     kryo.register(SomeRequest.class);     kryo.register(SomeResponse.class);    }   } 
     
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| Сибирский | Дата: Среда, 09 Января 2013, 16:50 | Сообщение # 4 |  
 
Javatar 
Сейчас нет на сайте 
 
 | В какой момент падает?
 
   
 |  
| 
 | 
 |    | 
| Edison6 | Дата: Среда, 09 Января 2013, 17:20 | Сообщение # 5 |  
 
TRUE Programmer 
Сейчас нет на сайте 
 
 | при соедиденении:   ImageДобавлено (09.01.2013, 17:02) --------------------------------------------- Все разобрался! Добавлено (09.01.2013, 17:20) --------------------------------------------- Одно непонятно для чего нужны классы   SomeRequest и SomeResponse 
  Берил сбрей усы
 |  
| 
 | 
 |    | 
| MDKed | Дата: Среда, 09 Января 2013, 23:37 | Сообщение # 6 |  
 
частый гость 
Сейчас нет на сайте 
 
 | Edison6, Крионет - пересылает класы
  Стою на асфальте я в лыжи обутый.   То ли лыжи не едут, то ли я баганутый.   "O-Wars"
 |  
| 
 | 
 |    | 
| Сибирский | Дата: Четверг, 10 Января 2013, 12:27 | Сообщение # 7 |  
 
Javatar 
Сейчас нет на сайте 
 
 | MDKed, это бред. Траффик пожалей
 
   
 |  
| 
 | 
 |    | 
| Edison4 | Дата: Четверг, 10 Января 2013, 13:08 | Сообщение # 8 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Как то странно работает сервер....В дебаг режиме все отсылает а когда так запускаю то не присылает данные.   и не хочет выключать сервер при подачи данных "exit"   кто нить гляньте   СерверКод public class JServer {    static String message;    static String oldmessage;    public static void main(String[] ar) throws IOException    {     Server server = new Server();     server.start();     server.bind(40012, 40013);     System.out.println("Сервер запущен!!");     Kryo kryo = server.getKryo();     kryo.register(String.class);          server.addListener(new Listener() {      public void received(Connection connection, Object object) {       if (object instanceof String) {        String mge = (String) object;        message = new String();        message = mge;        System.out.println(message);       }      }     });     while(true)     {      if (message!=oldmessage && message!=null && message!="")      {       System.out.println("Рассылка.....");       oldmessage = message;       server.sendToAllTCP(message);       if (message=="exit")       {        server.sendToAllTCP(message);        server.close();        break;       }      } 
     }          }       }     Клиент   Код import java.io.IOException;   import java.util.Scanner; 
   import com.esotericsoftware.kryo.Kryo;   import com.esotericsoftware.kryonet.*; 
   public class JClient   { 
    public static void main(String[] ar) throws IOException    {     Scanner in = new Scanner(System.in);     System.out.println("Введите IP :");     String ip =  in.next();     Client client = new Client();     client.start();     client.connect(2015, ip , 40012, 40013);     Kryo kryo = client.getKryo();     kryo.register(String.class);     client.addListener(new Listener() {      public void received(Connection connection, Object object) {       if (object instanceof String) {        String mge = (String) object;        System.out.println(mge);               }      }     });     while(true)     {      client.sendTCP(in.next());     }    }   } 
     
 |  
| 
 | 
 |    | 
| x-and1988 | Дата: Четверг, 10 Января 2013, 13:12 | Сообщение # 9 |  
| 
 постоянный участник 
Сейчас нет на сайте 
 
 | Цитата (Сибирский) MDKed, это бред. Траффик пожалей     Для начала, если не вдаваться в подробности и не жалеть каждый переданный байт - то нормально.
  Изучаю Java   My  new project   My old project
 |  
| 
 | 
 |    | 
| IIyxMASTER | Дата: Четверг, 10 Января 2013, 13:36 | Сообщение # 10 |  
 
постоянный участник 
Сейчас нет на сайте 
 
 | Потому что нельзя сравнивать строки через "==" .   Ссылки на объекты разные, вот и не работает.   Строки сравнивать нужно через equals   Код if (message.equals("exit"))           {            server.sendToAllTCP(message);            server.close();            break;           }      и все твои !="" тоже нужно переписывать соответственно
 
 Сообщение отредактировал IIyxMASTER - Четверг, 10 Января 2013, 13:37  |  
| 
 | 
 |    | 
| Edison4 | Дата: Четверг, 10 Января 2013, 14:45 | Сообщение # 11 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | все понятно спс!
 |  
| 
 | 
 |    |