Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 24.01.2011, 13:44   #1
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Сеть

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

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
Вопрос в том Почему когда я пишу с клиента второй раз то у сервера не печатается это второе сообщение?
(Offline)
 
Ответить с цитированием
Старый 25.01.2011, 16:57   #2
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Сеть

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
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MOrtAl44444 (26.01.2011)
Старый 30.01.2011, 16:44   #3
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Сеть

А можно написать программу которая заходит на сайт и скачивает от туда файлы??? Я вот написал(точнее списал) ну чёт непрёт
(Offline)
 
Ответить с цитированием
Старый 31.01.2011, 12:18   #4
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Сеть

Где-то здесь лежала функция от 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
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MOrtAl44444 (31.01.2011)
Старый 31.01.2011, 13:10   #5
MOrtAl44444
Нуждающийся
 
Аватар для MOrtAl44444
 
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
Ответ: Сеть

Сможешь сделать пример??? У меня чё-то не получается
(Вроде правильно делаю)
(Offline)
 
Ответить с цитированием
Старый 31.01.2011, 13:32   #6
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Сеть

Вот ранняя версия автоапдейтера для моей игры, месяц назад работала, скомпиленной версии под рукой нет, но и сейчас должна работать.
__________________
galaxies.su | dstalk.ru

Последний раз редактировалось DStalk, 24.05.2011 в 23:46.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MOrtAl44444 (31.01.2011)
Старый 31.01.2011, 18:19   #7
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сеть

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

Сообщение от Dstalk Посмотреть сообщение
Где-то здесь лежала функция от 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
Копиарйты не забываем (копипаст из проекта? - возьмите за правило: писать в чужих функциях своего проекта копирайт автора и ссылку).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
DStalk (31.01.2011), MOrtAl44444 (31.01.2011)
Старый 31.01.2011, 18:41   #8
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Сеть

Да я ж говорил, что-то найти не могу на форуме... А Tadeus`a я упомянул как автора
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (31.01.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com