Тема: TCP server
Показать сообщение отдельно
Старый 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)
 
Ответить с цитированием