Пример TCP / клиентского / серверного приложения - PullRequest
1 голос
/ 27 июля 2010

Мне нужен пример приложения следующего сценария
1) IOCP TCP-сервер, способный принимать запрос
2) клиент делает запрос и отправляет операцию получения
3) SERVER закрыть соединение
4) клиент открывает еще один сокет для подключения и выполняет операцию отправки получения

В этом примере я хочу увидеть, как клиент может открыть соединение, а после закрытия сервера это соединение может установить другое успешное соединение с клиентом и снова выполнить операцию отправки и получения.
Как на самом деле сервер может обрабатывать отброшенное соединение и сокет остается открытым нежелательным ??

Пожалуйста, помогите мне с этим
Это может взорвать новую душу в моем теле !!!!

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Несколько лет назад я написал серию статей о The Code Project, в которой был представлен набор кода для создания TCP-серверов на основе IOCP.Код написан на C ++, и ваш вопрос помечен как «.net», но маловероятно, что вы захотите разработать сервер .Net с использованием IOCP напрямую, поскольку вы можете использовать различные асинхронные методы сокетов, чтобы делать то же самое без необходимостизапачкайте руки фактической стороной IOCP.

Во всяком случае ...

Первая ссылка связана с здесь: http://www.serverframework.com/products---the-free-framework.html

С тех пор я немного обновил код, и его можно найти здесь .

Код клиента отсутствует, но вы можете подключиться к серверу с помощью telnet и отправлять и получать данные ...

0 голосов
/ 20 декабря 2011

http://www.codeproject.com/KB/IP/iocp_server_client.aspx

Эта статья дала мне четкое представление об обработке клиентского сервера IOCP и TCP / IP. С несколькими функциями обработки клиентов.

По вашему вопросу, если вам нужно ограничить свободные потоки, то сервер должен уметь запускать таймер для каждого соединения между клиентом и сервером на каждом порту, который может быть похож на декоратор.

Чтобы прекратить получать 1000 подключений от одного и того же клиента, вам нужно больше копаться в сетевом программировании, я полагаю.

...