Отговори на тема  [ 11 мнения ] 
TCP сървър на JAVA 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение TCP сървър на JAVA
Някой може ли да обясни с няколко думи как може да се накара TCP сървър(Java) да върне файл(например jpg или pdf)? Искам да извиквам от браузъра: http://localhost:8080/test.pdf, при което да се отваря въпросния файл. Имам инсталиран Tomcat, който е конфигуриран на порт 8080. Единственото, което не знам е, как в самия сървър да пренасоча към файла.

Например, да преправя този код, с GET да връща test.pdf:

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

class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(8080);

while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}

_________________
http://www.szrefekt.com


Пон Апр 30, 2012 12:30 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: TCP сървър на JAVA
Не ти ли трябва HTTP сървър, а не TCP?
http://docs.oracle.com/javase/6/docs/jr ... mmary.html

_________________
Warriors of the Night, ASSEMBLER!!!


Пон Апр 30, 2012 2:52 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: TCP сървър на JAVA
Трябва ми TCP. Но нещо не успявам да намеря пример, удобен за адаптиране.

_________________
http://www.szrefekt.com


Пон Апр 30, 2012 3:42 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: TCP сървър на JAVA
Успях с предходната част. Сега искам index.html да включва автоматично връщане на определен вид файлове в текущата директория(например, .doc). Целта е да се обновява автоматично списъкът, когато изтрия или добавя файл.

_________________
http://www.szrefekt.com


Съб Май 12, 2012 5:13 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение Re: TCP сървър на JAVA
И какъв е проблема като получиш в сървъра заявка за index.html:
- да изчетеш файловете в папката;
- да си направиш списъка;
- да го форматираш HTML;
- да му сложиш хедъра;
- и да го върнеш като отговор?

Екстрите - после (по-добре ще бъде списъка с файловете да е предварително направен, но ефективните начини, които знам, са зависими от ОС - MSDN ReadDirectoryChangesW function )


Съб Май 12, 2012 8:27 pm
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: TCP сървър на JAVA
Май не го обясних много добре... Искам в index.html да се променя автоматично списъкът с файловете, които се предлагат. С доста ровене стигнах до един пример, който използва аплет за целта, като има няколко ограничения. Обаче се зарежда и реално не действа. Става дума за това: http://www.rgagnon.com/javadetails/java-0185.html

По самия сървър, който симулирам имам следния въпрос:
Когато го тестам от компютъра, на който е инсталиран - работи. Опитвам се отдалечено да пристъпя чрез IP/index.html, но ми връща 404, което тълкувам, че намира сървъра, но не и файла. Къде го търси? В папката, в от която се стартира сървъра ли и защо се получава това?(деактивирам Firewall при тестовете).
(Имайте предвид, че с Java се занимавам съвсем отскоро)

_________________
http://www.szrefekt.com


Нед Май 13, 2012 1:17 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение Re: TCP сървър на JAVA
Много добре си го обяснил и се надявам и аз да съм отговорил добре, чудно, защо не ми вярваш :)
Нали това съм написал:
- сървърът ти получава заявка за index.html
- сървърът ти изчита списъка с файловете в папката
- прави списъка с файловете в html формат (прикачам пример)
- праща го като отговор.
Какво толкова?


Прикачени файлове:
example.jpg
example.jpg [ 125.28 KiB | Прегледано 6141 пъти ]
Нед Май 13, 2012 10:29 am
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: TCP сървър на JAVA
Ще трябва да се откажа от това, доколкото виждам. Едва накарах сървъра да тръгне, сега ако трябва да си "приказва" с index...

_________________
http://www.szrefekt.com


Нед Май 13, 2012 1:48 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение Re: TCP сървър на JAVA
E1 написа:
Ще трябва да се откажа от това, доколкото виждам. Едва накарах сървъра да тръгне, сега ако трябва да си "приказва" с index...

Стига глупости! :)
Всеки амбициозен десетокласник може да напише подобно нещо, ако има кой да му направи сървъра.
Не се отказвай.


Нед Май 13, 2012 1:58 pm
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Нед Юли 22, 2007 8:57 pm
Мнения: 607
Местоположение: Белград
Мнение Re: TCP сървър на JAVA
Сървър имам. Знам как да открия кой файл се иска, но вече три дни стоя до 3-4 сутринта, а не мога да намеря код за сортиране, който да връща листинг на файловете в директорията. Вярно, че търсех за клиентската страна, но ми идва в повече да започна ровенето отначало за сървърната страна. На всичко отгоре, идея си нямам как да вкарам върнатото от сървъра в HTML. Ще ми трябват още няколко дни за това. И всичко само за идеята. Принципно, не обичам да се отказвам, но като сложа на везната, че нищо не получавам от цялата операция(освен да си погъделичкам самолюбието)...

_________________
http://www.szrefekt.com


Нед Май 13, 2012 2:29 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 25, 2004 10:32 pm
Мнения: 710
Мнение Re: TCP сървър на JAVA
Аз не работя на Java (имам сложен един еклипс, ама не съм го изучил :)), но принципно, щом пишеш на Java, за задачата ти няма значение дали е сървърна или клиентска страна - файловите операции не би трябвало да зависят от ОС.

Значи:
1. Когато в сървъра получиш заявка за Index.html - изпрати към клиента нещо свое (например само текста "Proba").
2. След това виж как се прави списък от наличните файлове (на мен ще ми отнеме час, да ти го направя на Java - 100% го има в нета, но след 10м започва F1 от Барселоба :))
3. Обходи списъка с файловете и от името на всеки файл формирай елемент от списък (или от таблица или div) на HTML и получения стринг (или масив от стрингове) го прати към клиента


Нед Май 13, 2012 2:44 pm
Профил ICQ WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни