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

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

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

Ответ
 
Опции темы
Старый 24.09.2010, 15:56   #1
Spy4433
ПроЭктировщик
 
Аватар для Spy4433
 
Регистрация: 16.04.2008
Сообщений: 161
Написано 36 полезных сообщений
(для 63 пользователей)
TCP server

Дайте кто нибудь пример Tcp сервера на BM


на blitz3d все просто при создании

Type streams
Field stream
End Type

tcp=CreateTCPServer(port)

repeat
new_potok=AcceptTCPStream(tcp)
If new_potok Then
ss.streams=New streams
ss\stream=new_potok
endif

For ss.stream=Each streams
If ReadAvail(ss\stream) Then
a$=readline(ss\stream)
writeline ss\stream,a$
endif
next

until keyghit(1)


как такое реализовать на blitzmax'e ?

1. создаем
Global tcp_port:Int=111222
Global socket:Tsocket
socket=CreateTCPSocket()
BindSocket(socket,tcp_port)

2. далее
тип для потоков

Type client
Field stream:Tsocketstream
Field socket:Tsocket
End Type
Global client_list:TList=New TList

цикл

3.If SocketAccept(socket) Then проверяем если есть то создаем сам поток

c:client=New client
client_list.AddLast c
c.stream=CreateSocketStream(c.socket)

4. вот дальше непонимаю

For c:client=EachIn client_list
cn=cn+1
If SocketReadAvail(c.socket) Then
a$=ReadLine(c.stream) - тож непонятно
EndIf
Next

5. отправка writeline(c.stream) - тож непонятно

хотелось бы больше узнать про работу с сокетами и потоками для них в BM ну или готовый пример с коментариями 4 и 5 части
__________________
форум эт вещь... и почему я раньше им не пользовался?

AMD Phenom(tm) II X6 3.20GHz 8GB GTX 550(1Gb)
(Offline)
 
Ответить с цитированием
Старый 24.09.2010, 19:20   #2
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: TCP server

За создание TCP серверов в Blitzmax отвечает модуль brl.gamenet
Документация и семплы прилагаются вместе с модулем

Как по мне значительно удобней и легче чем в Blitz3d, а кроме того работает(проверено на локалхосте и даже через интернет(!))
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 27.09.2010, 08:13   #3
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: TCP server

После BindSocket(socket,tcp_port) я выполнял команду SocketListen(socket), чтоб сервер стал слушающим, т.е. мог ловить подключаемых клиентов.

Отправку данных делал не через потоки, а через методы самого сокета - socket.Send(data, size) и socket.Recv(data, size).

Прилагаю исходник. Там есть сервер и клиент. Сервер "следит" за позицией объектов, которые двигаются на клиентской стороне.
Сделано в виде классов (type).
Вложения
Тип файла: rar tcpServer.rar (4.2 Кб, 723 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Spy4433 (27.09.2010)
Ответ


Опции темы

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

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


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


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