Следует ли закрывать сокет (TCPIP) после каждой транзакции?

Я написал TCPIP-сервер, который реализует FileSystemWatcher и заполняет очередь данными, полученными из новых файлов, полученных FSW.

Один клиент подключается к этому серверу и запрашивает данные из очереди (ни один другой клиент нужно будет подключиться в любой момент). Если данных нет, клиент подождет (1 секунду) и попытается снова.

И клиент, и сервер записываются асинхронно - мой вопрос: должен ли клиент создавать новый сокет для каждой транзакции (внутри цикла while) или просто оставьте сокет открытым (вне цикла while)?

client.Connect()

while(bCollectData)
{
    ... communicate ...

    Thread.Sleep(1000);
}

client.Shutdown(SocketShutdown.Both);
client.Close();
5
задан Jess 16 September 2010 в 05:53
поделиться