Skip to main content
EDU-MMCS
  • English ‎(en)‎
    Русский ‎(ru)‎ English ‎(en)‎
You are currently using guest access (Log in)

Computer Networks

  1. Home
  2. Courses
  3. Весенний семестр
  4. Фундаментальная информатика и ИТ
  5. CN
  6. Topic 5
  7. Lab 6. Network programming

Lab 6. Network programming

Completion requirements
Due: Thursday, 27 April 2023, 11:59 PM

Make a program that implements a given network service. It should be able to serve many clients at the same time. Make two versions of the server from the list: one TCP server, the other - web socket server (a couple of technologies must be different for different students; ask the teacher if your chosen pair is not already taken):

  1. C++ threads with blocking sockets (sample)
  2. C++ poll with multiplexed I/O (sample)
  3. C++ epoll (extended poll) with the O(1) complexity of the algorithm (sample)
  4. C++ ASIO - asynchronous I/O - uses Boost (sample)
  5. C++ websocket server on Qt (sample)
  6. incorrect: C# with non-blocking sockets (sample - is incorrect, you need to rewrite according to the article - for the CALC protocol like all other examples)
  7. Ruby (sample of TCP-server;       sample of websocket server)
  8. Python (sample TCP-server;       sample websocket server )
  9. Java (sample of TCP-server based on Netty library, sample of websocket server based on Jetty library)
  10. Javascript Node.js (sample of TCP-server;      sample of websocket server)
  11. Php (sample of TCP-server;      sample of websocket server)
  12. Golang (sample of TCP-server based on threads, sample of TCP-server based on events (epoll), sample of websocket server based on threads)
  13. Rust (sample of TCP-server based on threads, sample of websocket server)
  14. Haskell (sample of TCP-server,       sample of websocket server)
  15. Kotlin (sample of TCP-server;      sample of websocket server)
  16. Scala (sample of TCP-server)
  17. Another, without an example (but one) for the CALC protocol from the lecture or a websocket server in a programming language for which there is no example (python curio, etc.) or rewrite incorrect C# example 

These technologies should be used only when writing a server program. As a client program, use telnet for the TCP server case and this web page for the websocket server case.

In all tasks, clients connect to the server, communicate for a long time: they send requests, receive responses and disconnect. Implement the possibility of request pipelining: the client sends one or more requests before receiving a response to the previous one.

Think up and describe the format of messages sent by clients and server responses to these messages (i.e. protocol).

Your variant of the task was sent to you by email. If not, contact the lecturer.

The completed task must be shown to the teacher in class and then upload the solution to Moodle.

An additional 3 points in network administration are given to those who prepare two docker containers for their servers, which, when they are launched, must compile (if necessary) and run the corresponding server.         

◄ Slides
Lab7. Network Games ►
Skip Navigation
Navigation
  • Home

    • Site pages

      • My courses

      • Tags

    • My courses

    • Courses

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

          • [β] CS211a. ЯП С#

          • ОрбПО

          • ADS

          • CS211 ENG (c#)

          • ADS (2021)

          • cs203e

          • Летняя практика 3 к, ИВЭ

          • English C#

          • CS212en

          • CS212e

          • CS292

          • CN

            • General

            • Topic 1

            • Topic 2

            • Topic 3

            • Topic 4

            • Topic 5

              • URLSlides

              • AssignmentLab 6. Network programming

              • AssignmentLab7. Network Games

            • Topic 6

            • Topic 7

            • Topic 8

            • Topic 9

            • Topic 10

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Олимпиадная математическая школа

        • Открытое тестирование - 2023 г.

        • Открытое тестирование - 2022 г.

        • Повышение квалификации

        • Архив

        • Доступная математика

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

You are currently using guest access (Log in)
CN
  • English ‎(en)‎
    • Русский ‎(ru)‎
    • English ‎(en)‎
Data retention summary
Get the mobile app Яндекс.Метрика