Я работаю над проектом банкомата (tcp / ip, C #). Я должен нажать кнопку запуска в приложении сервера, чтобы начать прослушивание клиента. OInce клиент отправляет подпись по запросу (подключиться), соединение между сервером и клиентом установлено (до этого момента я закончил).
Когда от клиента приходит знак запроса, мне нужно отключить соединение и снова начать прослушивание клиента. Код для прослушивания клиента приведен ниже.
public bool startlisten()
{
byte[] buffer = new byte[4000];
try
{
//Creates one SocketPermission object for access restrictions
permission = new SocketPermission(
NetworkAccess.Accept, // Allowed to accept connections
TransportType.Tcp, // Defines transport types
"", // The IP addresses of local host
SocketPermission.AllPorts // Specifies all ports
);
// Listening Socket object
sListener = null;
//Ensures the code to have permission to access a Socket
permission.Demand();
// Resolves a host name to an IPHostEntry instance
IPHostEntry ipHost = Dns.GetHostEntry("");
int portnumber = int.Parse(ConfigurationManager.AppSettings.Get("port"));
// Creates a network endpoint
ipEndPoint = new IPEndPoint(IPAddress.Any, portnumber);
// Create one Socket object to listen the incoming connection
sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// Associates a Socket with a local endpoint
sListener.Bind(ipEndPoint);
// Places a Socket in a listening state and specifies the maximum
// Length of the pending connections queue
sListener.Listen(10);
//Begins an asynchronous operation to accept an attempt
AsyncCallback aCallback = new AsyncCallback(AcceptCallback);
sListener.BeginAccept(aCallback, sListener);
}
catch (Exception exc) {
return true;
}
return true;
}
Пожалуйста, объясните мне, как отключиться от клиентского сокета и снова начать прослушивание.
Я пытался
//handler.Disconnect(false);
//handler.Shutdown(SocketShutdown.Both);
//handler.Close();
sListener и обработчик являются объектом Socket, в то время как принимающий (acceptconnection) слушатель копируется в обработчик.