Skip to content

Latest commit

 

History

History

tcp

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

TCP server

Использование сетевых ресурсов: сервер сообщений

Сетевые технологии обработки данных (СТОД)

task

server

Создать многопоточный TCP-сервер со следующим функционалом:

  • фиксировать все попытки входящих соединений со стороны клиентов
  • сервер должен идентифицировать клиента по его ip-адресу и сопоставлять с ним имя (к клиенту в дальнейшем можно обращаться по имени или по ip-адресу)
  • организовать постоянный приём и отсылку сообщений от клиентов (каждый клиент должен иметь возможность отправить любому другому присоединенному к серверу клиенту сообщение), сообщения оформляются как команды с помощью JSON
  • по требованию клиента сервер должен выдавать список всех присоединенных к нему клиентов (список оформляется с помощью JSON)

client

Организовать отсылку команд серверу. Команды вводятся пользователем с клавиатуры.

setup & run

  1. install golang
  2. sh setup.sh
  3. run server with ./run-server.sh
  4. run clients with ./run-client.sh

solution

server

Image from Gyazo

client

Image from Gyazo

  • to verify that server.go serves multiple TCP clients
$ netstat -anp TCP | grep 8000
  • to test with nc:
$ nc localhost 8000
{"type": "ping", "payload": "hello"}