C # - Несколько TCP-соединений на одном порте?

Меня интересует, разрешено ли мне это делать

client_db.clients[numberOfClients].sock = listener.Accept();

Для моего сетевого класса я пишу клиент чата и сервер, к которому он подключается. У меня есть массив клиентских объектов, который содержит различную информацию о каждом из людей, подключающихся к серверу. Раньше, когда я имел дело с одним клиентом, у меня был бы сокет, равный listener.Accept, а затем я бы делал все свои вещи с этим сокетом. Я ошибочно предположил, что могу использовать массив сокетов для нескольких TCP-соединений с несколькими клиентами.

Есть ли способ сделать это? Я понимаю, что, вероятно, есть более эффективные способы сделать это, но я все еще разбираюсь в сетевом программировании, и, что более важно, мой сервер в настоящее время основан на идее использования мной массива сокетов. Если нет возможности сделать это, это, безусловно, урок, который я запомню.

РЕДАКТИРОВАТЬ: У меня сложилось впечатление, что это не сработало, потому что я получил исключение, в котором говорилось что-то о «не может иметь несколько соединений», хотя я не могу получить это исключение снова. Теперь я получаю ошибку объекта. Я сбит с толку, мне нужно еще разобраться с этим ..

7
задан cost 17 October 2010 в 09:53
поделиться