Какие тесты забыли:
- При запуске номер порта не является номером из диапазона 0...65535 (является строкой, отрицательным числом, слишком большим числом - должна быть корректная ошибка или должен использоваться порт по умолчанию - 4010, если его использовать возможно).
- При запуске номер порта не указан (должен использоваться порт 4010, надо проверить, что именно он и используется).
- При запуске указан номер порта, который уже занят (должно быть корректное сообщение об ошибке, тест простой - дважды запустить программу с одним и тем же значением параметра).
- При запуске указан номер порта, который не занят (должно быть всё корректно, порт будет открыт сервером) - этот тест вы не забыли, он тут так, для полноты.
Проверка того, как устанавливается соединение:
- Сервер может слушать только 127.0.0.1 (тогда из вне к нему не подсоединиться)
- Сервер может не отправлять ответ, если ответ пришёл с локальной машины.
- ...
Если будете тестировать и клиента и сервера на одной машине, то не заметите наличие таких ошибок. А если будете использовать несколько машин, то значит вы разбираетесь в виртулизации (что хорошо), или имеете несколько компьютеров, соединённых в сеть, и в любом случе разбираетесь в сетевых настройках (что также хорошо).
Но это всё ручные проверки. Автоматизация - важная часть часть задания.
Как посылать запросы описано тут, например (первое, что дал Яндекс по запросу: MSDN Samples TCP Client):
http://msdn.microsof....tcpclient.aspxТам в примере буфер для получения ответа фиксированного размера (256 символов). Для получения фразы «Hello, World» хватит, для получения текстов с сообщениями об ошибке - тоже (но не факт, что полностью, если сервер будет распечатывать стек вызова в обработчике исключений, то не влезет). Плюс надо будет сделать замер времени: из времени получения ответа, вычитать время начала установки соединения.
- Сделайте цикл от 0 до 255, отправьте все байты, проверьте, что всегда вернётся «Hello, World».
- А потом пошлите 2 байта.
- А потом пошлите 20000 байт.
- Пошлите запрос и закройте соединение.