forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Сеть (http://forum.boolean.name/showthread.php?t=14105)

MOrtAl44444 24.01.2011 13:44

Сеть
 
Вот у мя Сервер

Код:

svrGame=CreateTCPServer(8080)

If svrGame<>0 Then
Print "Сервер запущен удачно."
Else
Print "Ошибка создания сервера."
End
End If
 
While Not KeyHit(1)
strStream=AcceptTCPStream(svrGame)
If strStream Then
Print ReadString$(strStream)
End If
Wend
End



А вот клиент
Код:

strmGame=OpenTCPStream("127.0.0.1",8080)

If strmGame<>0 Then
Print "Запущен" 
End If

.x
s$=Input()
WriteString strmGame,s$
Goto x

Repeat

Until KeyHit(1)
End

Вопрос в том Почему когда я пишу с клиента второй раз то у сервера не печатается это второе сообщение?

DStalk 25.01.2011 16:57

Ответ: Сеть
 
strStream=AcceptTCPStream(svrGame)

Сервер каждый раз ждет нового подключения, т.к. новых подключений нет, написанная выше функция выдает Null, и следующее за ним условие не проходит. Тут надо новые подключения записывать например в тип (или массив), а потом все их обрабатывать циклом.

Типа того:
Код:

svrGame=CreateTCPServer(8080)

Type Users
  Field Stream
End type

If svrGame<>0 Then
Print "Сервер запущен удачно."
Else
Print "Ошибка создания сервера."
End
End If
 
While Not KeyHit(1)
;Здесь подключение новых потоков
strStream=AcceptTCPStream(svrGame)
If strStream Then u.users=new users:u/stream=strStream

;Обработка уже подключенных потоков
For u.users = each users
  ;Здесь еще нужна проверка на отключения потока, не помню как писать - блица под рукой нет...
  If readavail(u/stream) Then
    Print ReadString$(u/stream)
  End If
next
Wend
End


MOrtAl44444 30.01.2011 16:44

Ответ: Сеть
 
А можно написать программу которая заходит на сайт и скачивает от туда файлы??? Я вот написал(точнее списал) ну чёт непрёт

DStalk 31.01.2011 12:18

Ответ: Сеть
 
Где-то здесь лежала функция от Tadeus`а, не могу найти. Функция рабочая, недавно проверял. Правда если файлы большие то может не докачать, надо ее дорабатывать... Нашел у себя:
Код:

Function httpGetFile(http_url$,savename$)

    If Left$(http_url$,7)="http://" Then
        http_url$=Mid$(http_url$,8)
    EndIf
    If Instr(http_url$,"/") Then
        http_host$=Left$(http_url$,Instr(http_url$,"/")-1)
        http_file$=Mid$(http_url$,Instr(http_url$,"/"))
    Else
        http_host$=http_url$
        http_file$="/"
    EndIf
    http_stream=OpenTCPStream(http_host$,80)
    If Not http_stream Then Return 0
    WriteLine http_stream,"GET "+http_file$+" HTTP/1.1"
    WriteLine http_stream,"Host: "+http_host$
    WriteLine http_stream,"Connection: close"
    WriteLine http_stream,""
    Repeat
        Delay 1
    Until ReadAvail(http_stream)<>0
   
    Repeat
        http_header$=ReadLine(http_stream)
        If Left(http_header$,9)="Location:"
            If Mid(http_header$,11,4)="http" Then
                Return httpGetFile(Mid$(http_header$,11),savename$)
            Else
                Return httpGetFile("http://"+http_host$+Mid$(http_header$,11),savename$)
            EndIf
        EndIf
    Until http_header$=""
   
    http_result=WriteFile(savename$)

    While Not Eof(http_stream)
        WriteByte http_result,ReadByte(http_stream)
    Wend

    CloseFile http_result
End Function


MOrtAl44444 31.01.2011 13:10

Ответ: Сеть
 
Сможешь сделать пример??? У меня чё-то не получается
Цитата:

(Вроде правильно делаю)

DStalk 31.01.2011 13:32

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

impersonalis 31.01.2011 18:19

Ответ: Сеть
 
Почему тема в разделе "3D-программирование"?!?!!1раз
Чуть-ли не половина вопросов по 3д нифига таковыми не является.

Цитата:

Сообщение от Dstalk (Сообщение 177459)
Где-то здесь лежала функция от Tadeus`а, не могу найти. Функция рабочая, недавно проверял. Правда если файлы большие то может не докачать, надо ее дорабатывать... Нашел у себя:
Код:

Function httpGetFile(http_url$,savename$)

    If Left$(http_url$,7)="http://" Then
        http_url$=Mid$(http_url$,8)
    EndIf
    If Instr(http_url$,"/") Then
        http_host$=Left$(http_url$,Instr(http_url$,"/")-1)
        http_file$=Mid$(http_url$,Instr(http_url$,"/"))
    Else
        http_host$=http_url$
        http_file$="/"
    EndIf


Знакомая избыточность с конструкциями nstr(http_url$,"/")... Где это я видел? Ну-ка - ну-ка:
http://forum.boolean.name/showpost.p...40&postcount=9
Копиарйты не забываем (копипаст из проекта? - возьмите за правило: писать в чужих функциях своего проекта копирайт автора и ссылку).

DStalk 31.01.2011 18:41

Ответ: Сеть
 
Да я ж говорил, что-то найти не могу на форуме... А Tadeus`a я упомянул как автора:)


Часовой пояс GMT +4, время: 10:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot