Ведение в сетевое программирование
- Основы TCP/IP
- Пятиуровневый стек
- Клиент-сервер и Сокеты
Асинхронный обмен данными и модуль socket
Клиент
Сервер
bind()
listen()
connect()
accept()
recv(), send(),sendall()
?
close()
Асинхронный обмен данными с помощью обратных вызовов: модуль asyncore
- Понятие ?протокола?
модуль asynchat
Упрощенный высокоуровневый сетевой модуль socketserver
Домашнее задание
Прочитать конспект вводной лекции по TCP/IP. Это занимательное чтение, спасибо автору конспекта!
Прочитать простую статью на Хабре и документацию по socket и socketserver
- Воспроизвести примеры из документации
Написать программу-чат (простой аналог Netcat, один слушает порт, другой подключается, некоторое время пересылают друг другу строки сообщений, затем любой закрывает соединение). В зависимости от того, указан адрес или нет, программа запускается как клиент (с подключением на этот адрес) или как сервер (с bind() на пустой адрес)
Разработать протокол и написать сервер, решающий квадратные уравнения (пользователь подключается ? хоть тем же netcat, вводит параметры квадратного уравнения, получает ответ)
- хоть как-то, чтобы работало
- + с учетом 6 различных вариантов ответа (2 ответа, один, решений нет, уравнение линейное, уравнение вырожденное + решений нет, уравнение вырожденное + решение любое)
- + с защитой от неправильного ввода (7-й вариант ответа)
+
написать клиентскую программу, разбирающую ответ
Условные обозначения
? тема по Linux
?? тема повышенной сложности
? теоретическое задание
? тема для самостоятельного изучения