|
3D-программирование Вопросы, касающиеся программирования 3D мира |
24.01.2011, 13:44
|
#1
|
Нуждающийся
Регистрация: 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
|
Разработчик
Регистрация: 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
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2011, 16:44
|
#3
|
Нуждающийся
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
|
Ответ: Сеть
А можно написать программу которая заходит на сайт и скачивает от туда файлы??? Я вот написал(точнее списал) ну чёт непрёт
|
(Offline)
|
|
31.01.2011, 12:18
|
#4
|
Разработчик
Регистрация: 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
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.01.2011, 13:10
|
#5
|
Нуждающийся
Регистрация: 28.12.2010
Сообщений: 55
Написано одно полезное сообщение
|
Ответ: Сеть
Сможешь сделать пример??? У меня чё-то не получается
|
(Offline)
|
|
31.01.2011, 13:32
|
#6
|
Разработчик
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений (для 1,072 пользователей)
|
Ответ: Сеть
Вот ранняя версия автоапдейтера для моей игры, месяц назад работала, скомпиленной версии под рукой нет, но и сейчас должна работать.
Последний раз редактировалось DStalk, 24.05.2011 в 23:46.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.01.2011, 18:19
|
#7
|
Зануда с интернетом
Регистрация: 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 за это полезное сообщение:
|
|
31.01.2011, 18:41
|
#8
|
Разработчик
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений (для 1,072 пользователей)
|
Ответ: Сеть
Да я ж говорил, что-то найти не могу на форуме... А Tadeus`a я упомянул как автора
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:32.
|