C # TCP / IP сервер и клиент - PullRequest
       4

C # TCP / IP сервер и клиент

0 голосов
/ 13 декабря 2010

У меня есть простое приложение клиент / сервер TCP.Как настроить две программы так, чтобы на стороне сервера требовалось имя пользователя и пароль, и когда клиент пытается подключиться, ему нужно ввести правильное имя пользователя и пароль и отправить его на сторону сервера, сторона сервера будетпроверьте, правильно ли указаны имя пользователя и пароль, если они верны, то разрешено ли соединение, в противном случае он отклоняет соединение

Ответы [ 3 ]

2 голосов
/ 13 декабря 2010

Используйте WCF, поскольку вы, очевидно, раньше не использовали чистые сокеты. Скорее всего, это будет более стабильное решение, чем если вы попытаетесь изучить сокеты и придумаете свой собственный протокол.

Вы можете использовать WCF вместе с netTcpBinding для достижения того, что вы хотите. У вас есть пример здесь: http://www.dotnetspider.com/resources/19314-Client-server-sample-using-WCF-net-tcp-binding.aspx

Извините, если это был не тот ответ, который вы искали, но есть много вещей, которые необходимо правильно реализовать, чтобы получить простое решение клиент / сервер tcp / ip.

1 голос
/ 13 декабря 2010

Это невозможно сделать с помощью простого TCP / IP. Вам придется либо придумать какой-нибудь протокол, либо использовать WCF или тому подобное.

Поскольку «соединение» происходит до того, как что-либо может быть отправлено, невозможно отправить учетные данные «вместе с соединением». Вам нужно было бы подключить клиента, получить команду для «Вход в систему», проверить учетные данные и вернуть некоторый уникальный идентификатор, который затем необходимо отправить вместе с каждой командой, чтобы сервер мог проверить, был ли клиент аутентифицирован. Вот как бы я это сделал, если бы WCF не был вариантом.

0 голосов
/ 13 декабря 2010

White Thorsten технически верен, я все еще думаю, что есть решение:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...