Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 13:38   #1
yazZ3va
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 14
По умолчанию Клиент-сервер игры

Доброго времени суток
Имеется клиент и сервер игры написаны на Java.
Клиент :
Код:
s = new Socket("91.187.27.248", 8189);
		 InputClient IC = new InputClient(s);
		
		OutputStream outStream = s.getOutputStream();
		 PrintStream out = new  PrintStream(outStream, true /* autoFlush */);
		 
		
		  while(true){
			
			  
		
			  if(Player.Move==3) {
			out.println(a);
			out.println(Map.px);
			out.println(Map.py);
		
			  }
			  
			  
			
		   
			
			
			
			
			
			
		  
		  try {
			Thread.sleep(45);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  }
Код:
InputStream inStream;
		try {
			inStream = s.getInputStream();
			
			Scanner in = new Scanner(inStream);
			while (true) {
			if (in.hasNext()) {
				thread = in.nextByte();
				
				if (thread ==15){
					User.X = in.nextShort();
					User.Y = in.nextShort();
				}
				
			}
			}
Сервер:
Код:
System.out.println("User connect: "+s);
	        	online+=1;
	        	ListSocket.addSocketToList(s);
	        
	            InputStream inStream = s.getInputStream();
	            OutputStream outStream = s.getOutputStream();
	            PrintStream out = new  PrintStream(outStream, true /* autoFlush */);
	            
	            Scanner in = new Scanner(inStream);         
	           
	            
	          
	        	System.out.println("online: "+online);
	            // echo client input
	           
	            while (in.hasNext())
	            {  
	         
	            	
	            	 thread  = in.nextByte();
	       
	            	 
	            	 if (thread==15) {
	               PX = in.nextShort();
	               PY = in.nextShort();
	            	 }
	            	
	            	
	            	
	              
	        	   listSocket = ListSocket.getListSocket();
	        	   for (Socket socket : listSocket) {
	        		   if (!socket.equals(s)) {
	        			   outStream = socket.getOutputStream();
	        			   out = new  PrintStream(outStream, true /* autoFlush */);
	        			   
	        	
	        		if (thread==15) {
	        	   out.println(thread);
	               out.println(PX);
		           out.println(PY);
	        		}
	        	
	        	 
	        		   }
	        		   
	        	  
	           }
	            }
	            
	            ListSocket.removeSocketWithList(s); 
	            // если поток завершается то сокет клиента удаляется из списка сокетов 
	            System.out.println("User disconnect...");
	         }
	         finally
	         {
	        	online-=1; 
	            s.close();
	            System.out.println("User exit!!");
Можно ли как то оптимизировать данный код?
И где нужно выполнять обработку событий на сервере или в клиенте?

Последний раз редактировалось yazZ3va; 18.12.2012 в 13:45.
yazZ3va вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать бота для игры (клиент-сервер). Оплата через webmoney. schuk Фриланс 0 11.05.2011 15:56
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18