| Программирование серверов на основе сокетов в Дельфи | Previous Home Next |
Алгоритм работы сокетного сервера









| · | Определение св-в Port и ServerType - чтобы к серверу могли нормально подключаться клиенты, нужно, чтобы порт, используемый сервером точно совпадал с портом, используемым клиентом (и наоборот). Свойство ServerType определяет тип подключения (подробнее см.ниже); |
| · | Открытие сокета - открытие сокета и указанного порта. Здесь выполняется автоматическое начало ожидания подсоединения клиентов (Listen); |
| · | Подключение клиента и обмен данными с ним - здесь подключается клиент и идет обмен данными с ним. Подробней об этом этапе можно узнать ниже в этой статье и в статье про сокеты (клиентская часть); |
| · | Отключение клиента - Здесь клиент отключается и закрывается его сокетное соединение с сервером; |
| · | Закрытие сервера и сокета - По команде администратора сервер завершает свою работу, закрывая все открытые сокетные каналы и прекращая ожидание подключений клиентов. |
| · | ActiveConnections (Integer) - количество подключенных клиентов; |
| · | ActiveThreads (Integеr) - количество работающих процессов; |
| · | Connections (array) - массив, состоящий из отдельных классов TClientWinSocket для каждого подключенного клиента. Например, такая команда: |
| · | ServerSocket1.Socket.Connections[0].SendText('Hello!'); |
| · | отсылает первому подключенному клиенту сообщение 'Hello!'. Команды для работы с элементами этого массива - также (Send/Receive)(Text,Buffer, Stream); |
| · | IdleThreads (Integer) - количество свободных процессов. Такие процессы кэшируются сервером (см. ThreadCacheSize); |
| · | LocalAddress, LocalHost, LocalPort - соответственно - локальный IP-адрес, хост-имя, порт; |
| · | RemoteAddress, RemoteHost, RemotePort - соответственно - удаленный IP-адрес, хост-имя, порт; |
| · | Методы Lock и UnLock - соответственно, блокировка и разблокировка сокета. |