init here
This commit is contained in:
57
исх/сеть/тцп/сервер.tri
Normal file
57
исх/сеть/тцп/сервер.tri
Normal file
@@ -0,0 +1,57 @@
|
||||
модуль тцп
|
||||
|
||||
// c:include "suckit.h"
|
||||
|
||||
фн create_socket_fd(port: Цел64): Цел64 @внеш
|
||||
фн accept_socket(fd: Цел64): Цел64 @внеш
|
||||
фн read_to_string(fd: Цел64, bytes: Цел64): Строка @внеш
|
||||
фн close_socket(socket: Цел64) @внеш
|
||||
фн write_string(socket: Цел64, data: Строка) @внеш
|
||||
фн connect_socket(host: Строка, port: Цел64): Цел64 @внеш
|
||||
|
||||
тип ТцпСервер* = класс {
|
||||
фд: Цел64 = 0
|
||||
}
|
||||
|
||||
тип ТцпСоединение* = класс {
|
||||
фд: Цел64 = 0
|
||||
}
|
||||
|
||||
фн создать сервер*(порт: Цел64): ТцпСервер {
|
||||
пусть фд = create_socket_fd(порт)
|
||||
|
||||
вернуть ТцпСервер{
|
||||
фд: фд
|
||||
}
|
||||
}
|
||||
|
||||
фн (с: ТцпСервер) принять чертово соединение*(): ТцпСоединение {
|
||||
пусть фд = accept_socket(с.фд)
|
||||
|
||||
вернуть ТцпСоединение{
|
||||
фд: фд
|
||||
}
|
||||
}
|
||||
|
||||
фн (с: ТцпСоединение) прочитать*(сколько: Цел64): Строка {
|
||||
вернуть read_to_string(с.фд, сколько)
|
||||
}
|
||||
|
||||
фн (с: ТцпСоединение) записать*(данные: Строка) {
|
||||
write_string(с.фд, данные)
|
||||
}
|
||||
|
||||
фн (с: ТцпСоединение) закрыть*() {
|
||||
close_socket(с.фд)
|
||||
}
|
||||
|
||||
фн (с: ТцпСервер) закрыть*() {
|
||||
close_socket(с.фд)
|
||||
}
|
||||
|
||||
фн подключиться*(хост: Строка, порт: Цел64): ТцпСоединение {
|
||||
пусть фд = connect_socket(хост, порт)
|
||||
вернуть ТцпСоединение{ фд: фд }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user