Помогите разобраться:::>>>WebServer

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Помогите разобраться:::>>>WebServer

Сообщение Yurik » 05.08.2003 (Вт) 9:54

Привет всем!!!
Люди не так не давно начал писать веб сервер, и дошел до такой траблы, сервак работает, как то не ясно, он графон отсылает, как то криво, т.е. я гружу страницу с 10 картинками, а при ее загрузке через обозреватель, появляется только 9 или 8 или 7 всегда по разному, я как говориться зае()ался и нашел пример простого сервака, который все отправляет класно, кстати вот он
==============================================
Dim Connections As Integer
Private Sub Command1_Click()
Connections = 1
Me.sckWS(0).Close
Me.sckWS(0).LocalPort = 80
Me.sckWS(0).Listen
Me.List1.AddItem Time & " Server started"
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Me.Show
Me.WebPfad = App.Path & "\"
End Sub
Private Sub sckWS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
Connections = Connections + 1
conlab = conlab + 1
Load sckWS(Connections)
sckWS(Connections).LocalPort = 0
sckWS(Connections).Accept requestID
End If
End Sub
Private Sub sckWS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim strdata As String
sckWS(Index).GetData strdata$
If Mid$(strdata$, 1, 3) = "GET" Then
findget = InStr(strdata$, "GET ")
spc2 = InStr(findget + 5, strdata$, " ")
Page = Mid$(strdata$, findget + 5, spc2 - (findget + 4))
SendPage Page, Index
End If
End Sub
Private Sub sckWS_SendComplete(Index As Integer)
sckWS(Index).Close
End Sub
Public Sub SendPage(Page, Index)
On Error GoTo Fehler
If Page = " " Then Page = "index.html"
Nr = FreeFile
Tx$ = " "
Lg = FileLen(WebPfad & Page)
Open WebPfad & Page For Binary As Nr
Tx1$ = ""
For m = 1 To Lg
Get #Nr, , Tx$
Tx1$ = Tx1$ + Tx$
Next
Close Nr
sckWS(Index).SendData Tx1$
Exit Sub
Fehler:
If Err.Number = 53 Then sckWS(Index).SendData "The URL you asked for does not exist on this website "
End Sub
++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++

Но вся трабла в том, что я в своем серваке создал такую же процедуру SENDPAGE, но у меня все равно, так же сервак отсылает графон, как и раньше:

Кстати вот как я переделал, (мож тут где ошибка):
++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++
Sub SendPage(Page, Index)
On Error GoTo Fehler

StartOver:
DoEvents
If requestedPage$ = "" Then GoTo StartOver

If requestedPage$ = "/" Then
requestedPage$ = htmlIndexPage$
Else
requestedPage$ = Mid(requestedPage$, 2, Len(requestedPage$) - 1)
End If

Nr = FreeFile
Tx$ = " "
Lg = FileLen(htmlPageDir & "/" & Page)
Open htmlPageDir & "/" & Page For Binary As Nr
Tx1$ = ""
For m = 1 To Lg
Get #Nr, , Tx$
Tx1$ = Tx1$ + Tx$
Next
Close Nr
sckWS(Index).SendData Tx1$
Exit Sub
Fehler:
If Err.Number = 53 Then sckWS(Index).SendData "The URL you asked for does not exist on this website "
End Sub
+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++


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

Заранее благодарен!

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 05.08.2003 (Вт) 9:59

Видимо скомпилиный сервак не так уж обрисовал ситуацию так, что его снес!
Последний раз редактировалось Yurik 06.08.2003 (Ср) 21:07, всего редактировалось 1 раз.

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 05.08.2003 (Вт) 12:27

сколько раз говорить чтоб к атачу описание писали.... При чистке будет удален.
Moderator VBStreets
---------------------------

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.08.2003 (Вт) 14:25

ASD писал(а):сколько раз говорить чтоб к атачу описание писали.... При чистке будет удален.


Так исправте форум! Это ж проверенная тема :
"Скока Reame не пиши - всё равно читать никто не будет!"
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 05.08.2003 (Вт) 15:27

Елы палы я то думал тут помогли советом, а тут ничего подобного!

------------------

Ану кышь в народный треп! :D :D :D :D :D

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 06.08.2003 (Ср) 13:42

Ребята че вы все, как трусы, как только появляется трудно решаямая проблема, так никто не может помочь, тогда на кой вообще придуман форум!

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 06.08.2003 (Ср) 14:45

я встречал пример сервера когда то на: http://www.sources.ru/vb/

посотри может еще остался....
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 06.08.2003 (Ср) 14:46

Ты бы обороты сбавил. Вопрос не конкретизирован, в архиве только исполняемые файлы без исходников. Ты даже не потрудился выделить код тегами [code] (наверное экономишь своё время?), зато требуешь от других, чтобы они по-быстрому скачали зачем-то пример, который ничего не объясняет, разобрались в листинге и выдали на гора мудрый совет, потому как ты просто "зае()ся" думать. Есть такое понятие в отладке как точка останова. Попробуй воспользоваться этой удивительно свежей фичей.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 06.08.2003 (Ср) 14:54

мой тебе совет, конечно так не разберешься с этой задачей, поищи примеры может на исходниках.ру нету так на других в поисковике...

а так нужно и правда глянуть на исходники...
лично я по твоему коду мало что понял...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 06.08.2003 (Ср) 20:55

Конечно же я не знал, что имеенно разместить, но разместил в основном ту строку, которая отсылает страницу.

А насчет исходников, у меня есть очень простенький ВЕБ СЕРВ ,который шлет графон отлично и там он юзает тоже процедуру отправки страницы, как и у меня(SendPage), но происходит какая то трабла мой серв отправляет, как то криво!

Хотя видимых ошибок я не нашел!

2 skiperski: А потому, как ты обращаяешь внимание на мелочи можно сразу сказать, какая ты - натуральная св----ь, с которой никому не охото иметь ничего общего по жизни. Кстати может тебе еще орфографию проверить, сделать синтаксический разбор предложений и определить стиль написания данного поста.

Скажу често разница со мной в 172 поста не дает тебе повода говорить со мной в таком тоне. (ты же все таки не модератор, так что не гни пальцы)

и возьми на заметку>>> Гнев возникает там, где мало мозгов и много злости!

Так что иди подлечи свое больное самолюбие!

:twisted: :twisted: :twisted: :twisted: :twisted: :twisted:

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 06.08.2003 (Ср) 22:44

Yurik писал(а):А насчет исходников, у меня есть очень простенький ВЕБ СЕРВ ,который шлет графон отлично и там он юзает тоже процедуру отправки страницы, как и у меня(SendPage), но происходит какая то трабла мой серв отправляет, как то криво!

Хотя видимых ошибок я не нашел!

Ну и что ты хочешь? Если ты, имея исходники, не можешь найти ошибку, то что делать нам без исходников?

Yurik писал(а):2 skiperski: А потому, как ты обращаяешь внимание на мелочи можно сразу сказать, какая ты - натуральная св----ь, с которой никому не охото иметь ничего общего по жизни. Кстати может тебе еще орфографию проверить, сделать синтаксический разбор предложений и определить стиль написания данного поста.

Определить стиль совсем не сложно: это называется хамство. При этом усиленное невозможностью собеседников (как-то в этом контексте это слово не звучит) встретиться. Если тебя обломала одноклассница, это ещё не повод хамить незнакомым и, возможно, старшим людям. И чем меньше малолетних идиотов будут со мной иметь дело, тем лучше. Хоть до тебя и не дойдёт, но всё же попробую кинуть мысль в массы: жизнь состоит из мелочей. Вместо того чтобы здесь городить ахинею, взял бы да исправил.

Yurik писал(а):Скажу често разница со мной в 172 поста не дает тебе повода говорить со мной в таком тоне. (ты же все таки не модератор, так что не гни пальцы)

Надо полагать, что та же самая разница тебе это право даёт? Или оно у тебя от рождения? По праву потомственного, даже наверное родовитого, люмпен-пролетария.

Yurik писал(а):и возьми на заметку>>> Гнев возникает там, где мало мозгов и много злости!

Это не гнев, а накопившаяся усталость от общения с такими как ты.

Yurik писал(а):Так что иди подлечи свое больное самолюбие!

Иди лучше подрочи. Переизбыток спермы в подростковом организме плохо влияет на деятельность высшей нервой системы.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 06.08.2003 (Ср) 23:02

Иди лучше подрочи. Переизбыток спермы в подростковом организме плохо влияет на деятельность высшей нервой системы.



ПЛОХИЕ СЛОВА. За такое мало по жопе надавать....
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 06.08.2003 (Ср) 23:04

Sub SendPage(Page, Index)
dim dt() As Byte
On Error GoTo Fehler

StartOver:
DoEvents
If requestedPage$ = "" Then GoTo StartOver

If requestedPage$ = "/" Then
requestedPage$ = htmlIndexPage$
Else
requestedPage$ = Mid(requestedPage$, 2, Len(requestedPage$) - 1)
End If

Nr = FreeFile
Tx$ = " "
Lg = FileLen(htmlPageDir & "/" & Page)
Open htmlPageDir & "/" & Page For Binary As Nr
ReDim dt(Lg)
Get Nr, , dt

Close Nr
sckWS(Index).SendData dt
Exit Sub
Fehler:
If Err.Number = 53 Then sckWS(Index).SendData "The URL you asked for does not exist on this website "
End Sub

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 06.08.2003 (Ср) 23:07

CjVirys писал(а):ПЛОХИЕ СЛОВА. За такое мало по жопе надавать....

Надо понимать, что все слова сказанные в мой адрес были хорошими?

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 07.08.2003 (Чт) 0:11

skiperski, CjVirys, Yurik:
Ведите себя прилично :wink:
Постыдились бы 8)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

aaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 190
Зарегистрирован: 08.02.2002 (Пт) 13:48
Откуда: Russia

Сообщение aaf » 07.08.2003 (Чт) 4:58

Я извиняюсь, но может мне кто нить объяснить, зачем надо писать свой Веб-сервер? Да еще и наБасике..... Если токма в целях самобучения, тогда не стоит наверно так кипятится по каждому пустяку...
Вечный LAmer

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 07.08.2003 (Чт) 11:26

FAKK2 писал(а):skiperski, CjVirys, Yurik:
Ведите себя прилично :wink:
Постыдились бы 8)

Стыдюсь самым стыдным стыдом. Перечитал сейчас понаписанное и подумал: "а чего это я?" Не даром говорят, что утро вечера мудренее. Начинаю вести себя прилично. Последний совет в моём пространном топике считать не действительным.

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



А теперь спокойно ещё раз. Итак, проблема в переводе на русский звучит как: "WebServer иногда не отсылает графические файлы. Помогите."

Какие материалы для анализа имеем? Пример рабочего сервера без исходников. Два куска практически идентичного нечитабельного кода, о работоспособности которых можно судить лишь в комплексе с другим кодом.

Понятно, что с такими вводными многого не нароешь. ShadowCaster предложил улучшения, но... и в первом и во втором примерах этот кусок кода одинаков, следовательно проблема не в нём. Улучшать и оптимизировать можно до бесконечности, но прежде всего программа должна работать.

На моё предложение углУбить и расширить вопрос и предоставить нормальные материалы для анализа оппонент сфонтанировал только лишь детскими криками. "А воз и ныне там..."


aaf писал(а):Я извиняюсь, но может мне кто нить объяснить, зачем надо писать свой Веб-сервер?


Yurik 15.04.2003 (Вт) 16:02 писал(а):Делаю веб сервер просто захотелось так что не задаем вопросов типа - ты че опух на VB этим заниматься!

aaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 190
Зарегистрирован: 08.02.2002 (Пт) 13:48
Откуда: Russia

Сообщение aaf » 07.08.2003 (Чт) 11:31

:oops:
Вот бы мне такое упорство!!!! Yurik - я за тебя болеть буду, чтоб у тебя все получилось!!!!
Вечный LAmer

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 07.08.2003 (Чт) 16:08

2 skiperski:
Начну тоже с того, что форумы придуманы не для того чтобы поливать друг друга как из ведра низкосортными выражениями малолетних идиотов. Так, что впредь веди себя прилично (это касаетсчя и меня лично).

Так, что примем соглащение, что больше токого не будет! Не только по отношению ко мне, но и ко всем, кто этот форум посещают!

2 All:
(НО!!!!!!): Но я не пойму просто откуда появляются, такие люди, которые на просьбу о помощи, !!! не о требовании, а о помощи, могут про себя сказать:

--Господа можно я пробью с ноги.

И начинают глушить новичков (в данном случая меня, хотя я давно здесь не новичек,и разбираюсь че к чему), думая что они самые умные, спешат учить, как оформлять пост, не принимая во внимание то, что, кто-то торопится, пытается, что то сделать, чтобы оно работало; И в отличии от некоторых не просматривают правой рукой форум, а левой избавляются от избытка спермы, думая при этом где бы еще погнуть пальцы и кого бы поставить на место, ОНИ просто занимаются полезным делом.

А таким людям хорошо бы было взять в руки толковый словарь русского языка и посмотреть толкование слов - Просьба и Требование.

А то впоследние время Просьба стала Требованием!

Я же не требую я призываю, всячески умоляю помочь; так, как я уже так долго бьюсь над эти сервером! И все же сделаю и буду очень рад если кто-нибудь все же поможет!

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 07.08.2003 (Чт) 16:29

Yurik писал(а):Так, что примем соглащение, что больше токого не будет! Не только по отношению ко мне, но и ко всем, кто этот форум посещают!

Ага, как сказал, так и сделал! Или я тут почему-то исключение? Короче, чтобы не обострять ситуацию будем считать, что я дальше всего до последнего абзаца не читал.

Yurik писал(а):Я же не требую я призываю, всячески умоляю помочь; так, как я уже так долго бьюсь над эти сервером! И все же сделаю и буду очень рад если кто-нибудь все же поможет!

Ну так и опубликуй код!!! Кто же без кода сможет разобраться, если ты уже четвёртый месяц над ним работаешь! А ответ требуешь дать всего за 28 часов (06.08.2003 (Ср) 11:42 - 05.08.2003 (Вт) 07:54) И именно требуешь, потому как форма в которой высказаны претензии явно не вопрошающего характера, а скорее обвинительного.

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

ЗЫ: Рекламная, в смысле рабочая, пауза. Оставайтесь с нами.

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 07.08.2003 (Чт) 16:46

Я так думаю глюк где, то в процедурах связанных с Winsokom так, что публикую их всех!

Код: Выделить всё
Private Sub sckWS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
On Error Resume Next
   If Index = 0 Then
      ttlConnections = ttlConnections + 1 
      numConnections = numConnections + 1
   
      If numConnections = maxConnections Then GoTo done

      Load sckWS(ttlConnections)
      sckWS(ttlConnections).LocalPort = 0
      sckWS(ttlConnections).Accept requestID
     
      AddIPTC
    End If
     
done:
      numConnections = numConnections - 1
End Sub


Код: Выделить всё
Private Sub sckWS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
On Error Resume Next
sckWS(Index).GetData strdata$
If Mid$(strdata$, 1, 3) = "GET" Then
findget = InStr(strdata$, "GET ")
spc2 = InStr(findget + 5, strdata$, " ")
pagetoget$ = Mid$(strdata$, findget + 4, spc2 - (findget + 4))
requestedPage$ = pagetoget$
ElseIf Mid$(strdata$, 1, 4) = "POST" Then
findpost = InStr(strdata$, "POST ")
spc2 = InStr(findpost + 5, strdata$, " ")
pagetopost$ = Mid$(strdata$, findpost + 5, spc2 - (findpost + 5))
requestedPage$ = pagetopost$
End If

StartOver:
      If IPtoIgnor(sckWS(ttlConnections).RemoteHostIP) = True Then
      htmldata$ = html_error("Ошибка", "Отказанно в доступе")
      sckWS(ttlConnections).SendData ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
      Exit Sub
      End If

     
      DoEvents
      If requestedPage$ = "" Then GoTo StartOver
      If requestedPage$ = "/" Then
      requestedPage$ = htmlIndexPage$
      Else
      requestedPage$ = Mid(requestedPage$, 2, Len(requestedPage$) - 1)
      End If

      If FileExists(AddASlash(htmlPageDir) & requestedPage$) Then
         htmldata$ = text_read(AddASlash(htmlPageDir) & requestedPage$)
         htmldata$ = ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
         sckWS(ttlConnections).SendData htmldata$ & vbCrLf
      Else
     
               If requestedPage$ = htmlIndexPage$ Then
                  htmldata$ = html_error("Ошибка", "Не найдена стратовая страница")
                  sckWS(ttlConnections).SendData ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
                 Exit Sub
               End If
     
              requestedPage$ = "/a"
              htmldata$ = html_error("Ошибка 404", "Запращеваемая страница не найдена")
              sckWS(ttlConnections).SendData ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
     
     End If

End Sub


Код: Выделить всё
Private Sub sckWS_SendComplete(Index As Integer)
      sckWS(ttlConnections).Close
End Sub


Вот кажись этого должно хватить!

Если, что говорите.!

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 07.08.2003 (Чт) 16:49

Я просто не успел одно сообщение сразу за другим выложить!
Но они уже здесь!
Т.е. код уже здесь!

2 skiperski:

Поднимем настроение и все забудем!
Изображение

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 07.08.2003 (Чт) 19:15

Стремака победил! Забили и раскурили. Мир, дружба, жУвачка!

Начинаем разбор кода. Сразу предупреждаю, что ответа на "почему не работает" я не знаю. Могу только, проводя анализ и задавая вопросы, натолкнуть на какую-нибудь, может быть полезную, мысль. Но по порядку.

Не понятно назначение некоторых переменных. Например, ttlConnections. При превышении максимально допустимого числа соединений numConnections уменьшается, а ttlConnections почему-то нет. Но это, скорее всего, не существенно. А вот то, что нет оператора безусловного перехода для обхода обработчика ошибки - может быть существенно.
Код: Выделить всё
      Exit Sub
done:
      numConnections = numConnections - 1

Хотя, может это специятельно, задумка такая?

Дальше. Не понимаю вот этого куска кода:
Код: Выделить всё
StartOver:
      ...
      DoEvents
      If requestedPage$ = "" Then GoTo StartOver

Получается, если requestedPage пустая строка, то в этом месте программа зацикливается. Или это событие? Или где? Непонятно.

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

Теперь уточним вопрос. Не отсылает только графические файлы или текстовые тоже? Пробовал ли грузить страницу со многими фрэймами для проверки этого? Может в какой-то момент кол-во соединений больше допустимого? Поставь Debug.Print в обработчик ошибки. Зависит ли это от размера файла? Все ли запросы приходят? Если все, то не может найти или не может открыть файл? Все ли сессии корректно закрываются? Как ведёт себя в процессе отладки?

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 07.08.2003 (Чт) 19:48

Самый прикол в том, я как только не делал (я фреймы не проверял только) думал мож графика на предпологаемом сайте для отправки разбита огромными кусками, делал во че открываю ту страницу файли для чтения и выдираю от туда по 10 кб и отправляю пока до конца не дойду, но весь прикол в том, что все равно глюк такой после отображения страницы в обозревателе видны 9 из 10 картинок или 6 10! Иногда местами их может перепутать т.е. есть 2 кртинки, разного размера одна за другой идет и он их путает таким образом, что сохраняет исходные размеры , только содержимое местами перепутано, короче одна будет растянутая, а другая сжатая!

Вот такая вот загагулина!

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 07.08.2003 (Чт) 19:55

А насчет переменных ttlConections это, то скоко народа на данный момент конектятся, numConections скоко было народу, т.е. скоко подрубалось типа посещаемость и све такое.

Цикл ввел из за того что не которые обозреватели трудно или медленно отправляют GET запрос, т.е. цикл ждет пока придет запрос!
Если он не пришел то ждем, и ловим, по идее можно сказать а вот она ошибка, но не тут то было в отчете у меня все записывает что запрашивал каждый пользователь, значит он все запросы получает но почему то криво отправляет!

Не знаю сижу вот думаю!
Уже собрался все заново делать!

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 08.08.2003 (Пт) 12:58

Люди всем спасибо разобрался сделал, работает, ошибки в логике оказались, все переделал кажись все клсно отправляет можно вздохнйть с облегчением!


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

Дело было в том, что когда я начинал только писать сервак, то ввел задержку в пару секунд в DataArival, но задержка вызывала уйму проблем вот решил применить цикл DoEvents так, как он по идее не должен был влиять на работу сервака, да и сам по себе он не зацикливал прогу, когда она находилась в стадии ожидания подключения, только потом начались появляться видимые нарушения в работе!

Код: Выделить всё
...StartOver:
      If IPtoIgnor(sckWS(ttlConnections).RemoteHostIP) = True Then
      htmldata$ = html_error("Ошибка", "Отказанно в доступе")
      sckWS(ttlConnections).SendData ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
      Exit Sub
      End If

     
      DoEvents
      If requestedPage$ = "" Then GoTo StartOver ......


кстати для любопытных вот то что я в итоге своей работы получил!
___________________________________________________________
Код: Выделить всё
Private Sub sckWS_ConnectionRequest(Index As Integer, ByVal requestID As Long)
On Error Resume Next
   If Index = 0 Then
      ttlConnections = ttlConnections + 1
      numConnections = numConnections + 1
   
      If numConnections = maxConnections Then GoTo done
      Load sckWS(ttlConnections)
      sckWS(ttlConnections).LocalPort = 0
      sckWS(ttlConnections).Accept requestID
     
      AddIPTC 'Заносим IP в список подключившихся
      List1.AddItem sckWS(ttlConnections).RemoteHostIP & " подключение"
done:
      numConnections = numConnections - 1
     
End If
End Sub


Код: Выделить всё
Private Sub sckWS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
On Error Resume Next
sckWS(Index).GetData strdata$
If Mid$(strdata$, 1, 3) = "GET" Then
findget = InStr(strdata$, "GET ")
spc2 = InStr(findget + 5, strdata$, " ")
pagetoget$ = Mid$(strdata$, findget + 4, spc2 - (findget + 4))
requestedPage$ = pagetoget$
ElseIf Mid$(strdata$, 1, 4) = "POST" Then
findpost = InStr(strdata$, "POST ")
spc2 = InStr(findpost + 5, strdata$, " ")
pagetopost$ = Mid$(strdata$, findpost + 5, spc2 - (findpost + 5))
requestedPage$ = pagetopost$
End If

      If FileExists(AddASlash(htmlPageDir) & requestedPage$) Then
      htmldata$ = text_read(AddASlash(htmlPageDir) & requestedPage$)

      htmldata$ = ReplaceStr(htmldata$, "$ip", sckWS(0).LocalIP)
      sckWS(Index).SendData htmldata$ & vbCrLf
      Else       
       If requestedPage$ = htmlIndexPage$ Then
       sckWS(Index).SendData html_error("Ошибка", "Не найдены стартовая страница") & vbCrLf
       requestedPage$ = ""
       Exit Sub
       End If
     
      requestedPage$ = "/a"
      sckWS(Index).SendData html_error("Ошибка 404", "Запрашиваемая страница не найдена") & vbCrLf
      End If
End Sub


Код: Выделить всё
Private Sub sckWS_SendComplete(Index As Integer)
      sckWS(Index).Close 'Close the connection.
End Sub


Ура я все же сделал ЭТО! :P :P :P :P :P :P :P

Так, что у кого похожие проблеммы возьмите на заметку! :idea:

И кстати Огромное спасибо ВАМ всем, кому за поддержку, кому за помошь, а кому и за то, что дал мне волшебного пендаля для скорости!

ЗЫ: Типа рекламная пауза.....
Изображение
Последний раз редактировалось Yurik 09.08.2003 (Сб) 6:15, всего редактировалось 1 раз.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 08.08.2003 (Пт) 13:32

Сорри за глупый вопрос... :oops:
Сижу тут, читаю ваши разборки... И задаю себе каждый раз такой вопрос: а что такое Веб-Сервер? В Инете написано, что это - комп, на котором записан Веб-сайт. А при чём тут программа?.. :oops: :?: Изображение
Нет меня больше

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 08.08.2003 (Пт) 14:07

A.A.Z. писал(а):Сорри за глупый вопрос... :oops:
Сижу тут, читаю ваши разборки... И задаю себе каждый раз такой вопрос: а что такое Веб-Сервер? В Инете написано, что это - комп, на котором записан Веб-сайт. А при чём тут программа?.. :oops: :?: Изображение


Это тяжелый случай......
Веб сервер, это программа, коотрая сидит на компе, и прослушивает порты.
Как только приходит запрос на страницу, она отсылает клиенту эту самую страницу.
Т.е. следить за функционированием сайта :wink:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 08.08.2003 (Пт) 14:34

Yurik писал(а):Ура я все же сделал ЭТО! :P :P :P :P :P :P :P

Ну вот и чудненько! Все радуются и хлопают в ладоши! Вот так спорт и спор, а иногда и срач :D, помогают в программировании.

Yurik
Постоялец
Постоялец
 
Сообщения: 553
Зарегистрирован: 08.04.2002 (Пн) 21:09
Откуда: Нижневартовск [Rulez 4ever]

Сообщение Yurik » 08.08.2003 (Пт) 15:11

Как доконца доделаю - все, может выложу на всеобщее обозрение.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 4

    TopList