diver
1

Возможна ли в ASP работа с сокетами?

15.10.2007, 21:53. Показов 3699. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможна ли в ASP работа с сокетами?
Мне необходимо передать находящемуся на другом сервере скрипту (не ASP'шному) некоторую информацию, получить от него ответ (в XML формате), а затем ответ обработать использованием местного XSL шаблона. Возможно ли это сделать на ASP и если да то как?!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2007, 21:53
Ответы с готовыми решениями:

Создание БД: Возможна ли связка SQL Express + IIS 7 + ASP.NET
Добрый день. Хочу спросить у знающих людей по созданию БД. Вот в чем идея: Возможна ли связка...

Работа с сокетами
Доброго времени суток, помогите пожалуйста, 2 дня уже убил на поиск решения - не могу больше....

Работа с сокетами
как вырубить локальный клиент?

Работа с сокетами!
есть серверное приложение с бд(access).как организовать передачу содержимого бд через сокет...

30
1 / 1 / 0
Регистрация: 21.06.2007
Сообщений: 654
16.10.2007, 02:49 2
nugen COM component. Posmotri VB biblioteki moget naidesh
0
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 10:21 3
А этот 'не-ASPшный' скрипт на IIS? То есть, он получает HTTP запрос, или вообще со своим протоколом работает?
0
diver
16.10.2007, 14:12 4
этот второй скрипт находится на том же серваке и работает по HTTP протоколу, а данные принимает в XML формате.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 14:35 5
тогда, думаю, можно так:

<%
dim xmlhttp, xmldoc

set xmldoc = Server.Createobject('Microsoft.XMLDOM')
xmldoc.loadXML('<BOOKS><BOOK></BOOK></BOOKS>')

set xmlhttp = Server.Createobject('Microsoft.XMLHTTP')
xmlhttp.Open('POST', 'http://myserver/myscript/', false);

xmlhttp.Send xmldoc
Response.ContentType='text/xml'
xmlhttp.responseXML.save(Response)
%>

тот самый скрипт лежит по адресу http://myserver/myscript/, он возвращает XML. Наша ASP его принимает и возвращает броузеру тот же XML.

PS. Если я правильно задачку понял...
0
quit
16.10.2007, 16:24 6
Я нечто подобное писал на Java
Cдесь надо подходить с другой стороны.
Т.е. представь что у asp сокеты уже открыты
и все что ему надо делать -

Response.BinaryWrite
Request.BinaryRead

А тебе
Соедениться с ним извне :
можно указав полный путь
например -
http://www.pupcin.ru/aspTest.asp

а там дальше как обычно.
Только ограничений - сам понимаешь
полным полно.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 16:46 7
Здесь нельзя подходить с другой стороны, потому что у ASP нет сокетов, они у IIS. Response реализует 'корзину', кидая в которую, мы через IIS отдаем ответ клиенту.
А вопрос в другом: как из ASP кинуть данные в другую ASP. Можно организовать все через 'мост', которым будет клиент, но это - :-х, не скажу, слово плохое. Остаются ActiveX, например MS Internet Transfer Control, или те, которые есть в XMLDOM. Вторые как раз по задачке подходят.
0
quit
16.10.2007, 17:10 8
1-
Он сказал что хочет передать из ASP
инфо НЕ ASP-ешному скрипту.
2-
А на счет сокетов -
он спросил и я ответил
представь как будто есть
(для простоты изложения)
я же не сказал что они есть.
quit
16.10.2007, 17:14 9
А обойтись можно и без
ActiveX.
Если сделать как я уже сказал.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 17:21 10
Ты код напиши, как это сделать. Передать HTTP запрос из ASP страницы некоторому узлу и получить ответ. Без ActiveX, чистым ASP.
Только не допускай, что сокеты есть и они открыты, это не поможет. Полностью работоспособный код, без любых абстракций.
0
quit
16.10.2007, 17:44 11
Я тебе завтра его пришлю.
Сейчас дома лежит.
Только он на Java - не смущает ?
в работе можно посмотреть
http://www.km.ru/entertaiment/crossword/
всмысле там апплет на JAVA
весь код не дам по соображениям того что
там больше не работаю
а конкретную часть с сокетами - завтра.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 17:48 12
Нет, в JAVA, да еще и аплет, не надо, я это и сам делал - http://www.nsc.kz/assetseval/deposits/, там даные тоже из ASP читаются.
Проблема в том, что: 1) в Java есть сокеты, а в ASP их нет; 2) аплет на сервере запустить 'трудновато' ;-)
0
quit
16.10.2007, 17:53 13
Если ты будешь внемательней то заметиш
что когда ты отгадываешь слова они
1-заносятся в базу
2-вся инфа о тебе тоже в базе
3-Java читает только в начале
а потом передает читает опять передает.
-и все это через ASP+Java.

Сокетов в ASP действительно нет
все дело в хитрости.
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 18:48 14
1. Ухитрись запустить аплет на сервере
2. Без аплета и других производных от JAVA ухитрись создать соединение с неким сервером (опять же на сервере, то есть средствами ASP, и без ActiveX).
Когда одно из этого ты сделаешь, я, честное слово, сниму перед тобой шляпу.
0
quit
16.10.2007, 18:53 15
Я согласен с Вами.
Сдесь реч о другой хитрости -
когда работа на сервере переходит на
сторону клиента.
Т.е. доменирующим становится клиент
каторый пользуется средствами предоставленными
на сервере - в данности средствами ASP
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
16.10.2007, 19:00 16
К сожалению, в том и есть проблема, что клиента в данной задаче нельзя использовать. Надо как-то обойтись без него. Можно было бы отправить ему страницу со скриптом, генерирующим XML, и автоматически отправляющим его далее, нужному URL, потом опять же через клиента вернуть ответ. Но вдруг юзер закроет броузер? Все пропало.
PS. Не называй меня на 'Вы', я еще молод ;-)
0
diver
16.10.2007, 21:40 17
спасибо за совет x-mailer! твой первый ответ был как раз то что нужно! а потом, признаюсь честно, я уже не совсем понимал
о чем вы дискутируете:-)
diver
17.10.2007, 03:56 18
как вы думаете, многоуважаемый All, почему перестал работать этот простой скрипт:

<%
Set xmlhttp = Server.Createobject('Microsoft.XMLHTTP')
xmlhttp.Open 'POST', 'http://127.0.0.1/scripts/LoginResponse.asp', False
xmlhttp.Send xmldoc

Response.ContentType='text/xml'
xmlhttp.responseXML.save(Response)
%>

еше сегодня утром он работал, а теперь подвисает на вызове xmlhttp.Send ....
diver
17.10.2007, 03:59 19
... xmldoc, конечно же, определяется чуть выше:

xmlQuery = '<query command='Login'>'
xmlQuery = xmlQuery + '<param name='uname' value='' + Request.Form('uname') + ''/>'
xmlQuery = xmlQuery + '<param name='pwd' value='' + Request.Form('pwd') + ''/>'
xmlQuery = xmlQuery + '<param name='resInfo' value='2'/>'
xmlQuery = xmlQuery + '</query>'

Set xmldoc = Server.Createobject('Microsoft.XMLDOM')
xmldoc.async='false'
xmldoc.loadXML(xmlQuery)
0 / 0 / 0
Регистрация: 03.10.2007
Сообщений: 129
17.10.2007, 10:24 20
Трудно предположить, отчего он перестал работать. Если 'подвисает' (не выдает ошибку, а именно подвисает), то, наверное, не может дождаться ответа от сервера. Так как вызов не асинхронный, то XMLHTTP будет ждать, пока сервер либо не вернет что-то, либо не закроет соединение.
Чтобы проверить, до каких событий при посылке доходит дело, и проверить на ошибку в возвращаемом xml, попробуй написать такую HTML страницу:

<script language=jscript>
var xmlhttp=null;
var uname='user';
var pwd='password';

function LoadXML()
{
var xmlQuery = '<query command='Login'>';
xmlQuery = xmlQuery + '<param name='uname' value='' + uname + ''/>';
xmlQuery = xmlQuery + '<param name='pwd' value='' + pwd + ''/>';
xmlQuery = xmlQuery + '<param name='resInfo' value='2'/>';
xmlQuery = xmlQuery + '</query>';

var xmldoc = new ActoveXObject('Microsoft.XMLDOM')
xmldoc.loadXML(xmlQuery);

xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
xmlhttp.Open('POST', 'http://127.0.0.1/scripts/LoginResponse.asp', true); //вызов асинхронный
xmlhttp.onreadystatechange=CheckState;
xmlhttp.Send(xmldoc);
}

function CheckState()
{
alert(xmlhttp.readyState);
if (xmlhttp.readyState == 4)
{
var err = xmlhhtp.responseXML.parseError;
if (err.errorCode != 0)
alert('Error: ' + err.reason);
else
alert('Success');
}
}
</script>

Надеюсь, чем-то смог помочь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2007, 10:24
Помогаю со студенческими работами здесь

Работа с Сокетами
Добрый день или вечер! Прошу помощи Зависает сервер при подключении клиента до момента...

Работа с сокетами
Доброго времени суток. Изучаю сокеты (linux, bsd, cygwin), в качестве испытательного полигона -...

Работа с сокетами
Можно пример кода как можно организовать асинхронный обмен данными с клиент сервер ???

Работа с сокетами на Си
в чем проблема, я вообще не пойму. Подскажите, плиз! int sd,size; struct sockaddr_in dest;...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru