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

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

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

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

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

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

Как тяжко. Сервер, ау-у-у!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.08.2009, 15:38
Ответы с готовыми решениями:

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

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

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

13
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
08.08.2009, 20:12
физическое положение на сервере тут не будет играть роли, если это просто обычный ява класс. тогда на сервере ты должен каким-то чудом/образом его запустить и там должны быть строки:
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
чтобы сильно не заморачиваться, тестируй у себя на своей машине и юзай 127.0.0.1
0
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 75
09.08.2009, 01:38  [ТС]
Так на локальной станции у меня всё почти готово!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В командной строке набирал:
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
А если так
javac -classpath %J2EE_HOME%/lib/j2ee.jar d:javaclassesEnterServlet.java

? )
0
4 / 4 / 1
Регистрация: 13.08.2008
Сообщений: 931
09.08.2009, 16:52
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  [ТС]
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
на самом деле это уже реализовано сервером. сервлет - всего лишь абстракция, до которой это соединение в конце концов доходит. поэтому, вы не открываете серверный сокет в сервлете - за вас он уже был открыт, обработан, и осталось только написать логику приложения, чего же со всеми данными делать. поэтому вы делаете не serverSocket.getInputStream(), а request.getInputStream() (serverSocket.getOutputStream() - response.getOutputStream() соответственно).

приведенный выше код отработает, но смысла в нем - ноль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2009, 02:40
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru