Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
1

Вызов серверного сокета в клиентском

08.08.2009, 15:38. Показов 1792. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мой серверный сокет помещен по следующему адресу http://321.32.321.32/~account/Server.class.

Что следует написать для его вызова в клиентском сокете вместо 'Тут.Мой.Сервер.Здесь':

socket = new Socket('Тут.Мой.Сервер.Здесь', 1234); ?

Как тяжко. Сервер, ау-у-у!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2009, 15:38
Ответы с готовыми решениями:

Создание Серверного Сокета
Помогите пожалуйста разобраться и найти ошибку при создании серверного сокета. В общем функция bind...

Вызов контекстного серверного метода формы
Добрый вечер, при нажатии на сотрудника появляется сообщение Ошибка появляется, когда в...

Копирование сокета или передача сокета в функцию
Добрый день всем, столкнулся с тем что не могу скопировать сокет. boost::asio::ip::tcp::socket...

Отчет в клиентском приложении
Есть готовая и работающее клиентское приложение в нем 2 отчета 1 в Exel он работает прекрасно. 2-ой...

13
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
08.08.2009, 20:12 2
физическое положение на сервере тут не будет играть роли, если это просто обычный ява класс. тогда на сервере ты должен каким-то чудом/образом его запустить и там должны быть строки:
Java
1
2
3
4
5
6
7
8
while (true)
{
   ServerSocket ss = new ServerSocket(1234); // port to listen at
   ss.accept();
 
   // got connection, dispatch it to helper process
   ...
}
тогда на клиенте будет работать как ты и говоришь.

второй вариант - если это сервлет. тогда там все по-другому на сервере, но кажется, это не то, что тебе сейчас нужно.

почитай внимательно доку на java.net.Socket , в частности методы типа setDoOutput(...);
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
08.08.2009, 20:14 3
чтобы сильно не заморачиваться, тестируй у себя на своей машине и юзай 127.0.0.1
0
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
09.08.2009, 01:38  [ТС] 4
Так на локальной станции у меня всё почти готово!

Именно поэтому я решил опробовать это дело в реальном режиме: зарегистрировал сайт в далеке-долёком, помещу теперь туда свой сервер-класс и буду его вызывать из своего клиента прямо из дома...

Но дело на самом деле серьезное.

Ведь на локалхосте сервер- и клиент-класс я вызываю из консоли-канифоли, методом 'майна-майна'. Как же мне запустить мой сервер на удаленном хосте?

Убрать Main() из класса вообще?

К слову пришлось, вы - г-н mr_dronski, может быть скажите почему всегда по-разному инициируют Main()? Иногда пишут так (String args[])? А иногда вот так (String[] args)?

Спасибо.
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
09.08.2009, 02:23 5
если у тебя не будет прямого доступа к окружению сервера через telnet/SSH, то ты никак не запустишь свой класс там (если даже ява там и есть, в чем я сомневаюсь). итог - тебе нужны сервлеты.

а про то, как писать - и так, и так можно. я предпочитаю описывать массив возле типа, а не имени - так можно слева направо читать строку как 'массив стрингов с именем х' : String[] x
0
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
09.08.2009, 02:46  [ТС] 6
Надо-надо нырять в сервлеты.

Или, может, в JSP?

В доках пишут, что JSP реализуют функциональность сервлетов. Значит ли это, что TCP/IP потоковые сокеты можно также делать в JSP?
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
09.08.2009, 03:35 7
там немного другая концепция. скорее всего, ты доберешься до HttpURLConnection и будешь писать туда так же, как и в сокет (по сути, это и будет сокет, но с 'навешенной' логикой).

сервлет будет это дело обрабатывать в одном из методов doGet/doPost и читать как поток. в общем, представь, что ты аплоадишь графический файл на сервер.

главное - стандартизировать протокол между клиентом и сервером, что ты и в каком порядке будешь слать, в каком формате.

ЖСП именно этот вариант плохо реализует, так что не мучайся - время сэкономишь. а для презентационной логики не сильно увлекайся включением ява кода в ЖСП - это очень плохо. сразу ориентируйся в будущем на таги и JSTL (где книжки классные скачать (англ), подскажем - я посмотрел, чел толково объясняет и проблем у тебя не будет).

надеюсь, сслылку на сановский туториал по сервлетам найдешь? лучшего искать особо и не нужно.
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
09.08.2009, 03:37 8
блин, ну че я сегодня по 2 раза постинги шлю? ))

перефразирую себя - сервлеты для логики (сокеты туда же)
ЖСП - для веб страничек и берут информацию, которую подготавливают сервлеты.

так работают серьезные проекты. на этапе обучения ты нередко увидишь немного другую модель - но это только на этапе обучения
0
0 / 0 / 0
Регистрация: 02.01.2009
Сообщений: 134
09.08.2009, 09:45 9
Что такое JSTL?
0
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
09.08.2009, 15:18  [ТС] 10
Не удалось откомпилировать сервлет.

Очень странно. А вот классы апплетов и приложений спокойно делаются!

В командной строке набирал:
d:>j2sdk1.4.2injavac d:javaclassesEnterServlet.java.

Получил 11 ошибок (!). Ужас.

||||||||||||||||Код очень простой||||||||||||||||||||
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class EnterServlet extends HTTPServlet {
 
  public void doGet (HttpServletRequest request,
                     HttpServletResponse result)
      throws IOExeption, ServletException{
      
      response.setContentType(text/html);
      
      out.println (
      
        '<html>' +
        '<head>' +
        '</head>' +
 
        '<body>' +
        'Hello, my first servlet!' +
 
        '</body>' +
        '</html>' 
 
      );
    
      }
}
Но почему?
0
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
09.08.2009, 16:04 11
А если так
javac -classpath %J2EE_HOME%/lib/j2ee.jar d:javaclassesEnterServlet.java

? )
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
09.08.2009, 16:52 12
JSTL:

http://java.sun.com/webservices/docs/ea2/tutorial/doc/JSTL.html
http://java.sun.com/products/jsp/jstl/
http://jcp.org/aboutJava/communityprocess/final/jsr052/

еще на jboss.ru найдете книжку 'JSTL in action' - рекомендую.

это то, как _нужно_ писать ЖСП
0
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
14.08.2009, 02:03  [ТС] 13
2mr_dronski.

А сервлет не может реализовать TCP/IP соединение?

Что-то вроде такого вообще возможно:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class ServerServlet extends HttpServlet
    { 
       
       ...           
      
             ServerSocket server = null;
                 Socket socket = null;
 
                  try {
                      server = new ServerSocket(10444);
                      Socket socket = server.accept();
 
                      OutputStream out = socket.getOutputStream();
                      InputStream in = socket.getInputStream();
 
                  }
 
                  catch(IOException e) {
                  }
 
      
    }
}
?
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
14.08.2009, 02:40 14
на самом деле это уже реализовано сервером. сервлет - всего лишь абстракция, до которой это соединение в конце концов доходит. поэтому, вы не открываете серверный сокет в сервлете - за вас он уже был открыт, обработан, и осталось только написать логику приложения, чего же со всеми данными делать. поэтому вы делаете не serverSocket.getInputStream(), а request.getInputStream() (serverSocket.getOutputStream() - response.getOutputStream() соответственно).

приведенный выше код отработает, но смысла в нем - ноль.
0
14.08.2009, 02:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2009, 02:40
Помогаю со студенческими работами здесь

Авторизация в клиентском приложении
Доброго времени суток. Возник такой вопрос, никак не могу найти в нете... Нужно создать...

Авторизация в клиентском приложении
Добрый день! В общем, проблема заключается в следующем: есть База Данных, в ней есть таблицы, ХП,...

Удаление из БД в клиентском приложении
Добрый вечер. Есть такая проблема. Есть база данных с которой я работаю из приложения. В ней...

Запуск приложения на клиентском компьютере
Добрый день. Написал приложение на VisualStudio, которое из БД Oracle выгружает некоторую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru