вопросы про сеть и потоки
От: VVVa  
Дата: 19.12.20 08:35
Оценка:
1) в чём плохо если пользоваться этой конструкцией?
public static void AcceptCallback(IAsyncResult ar)
{
                listener = (Socket)ar.AsyncState;
                handler_worker = listener.EndAccept(ar);
        //обработка

                Instance.listener.BeginAccept(AcceptCallback, listener);
}

интересует именно почему в примерах не вызывают BeginAccept в собственном Callback (тоесть в собственном потоке) а используют отдельный поток и событие

2) если я сделаю так
    public void SendCurentWithoutTry(String cmd)
        {
            Encoding cp1251 = Encoding.GetEncoding(1251);
            byte[] для_отправки=cp1251.GetBytes(cmd);
            handle.BeginSend(cp1251.GetBytes(cmd), 0, для_отправки.Length, 0, new AsyncCallback(MySendCallback), handle);

        }
        private static void MySendCallback(IAsyncResult asyncResult)
        {
            try
            {
                Socket socket = (Socket)asyncResult.AsyncState;
                int размер=socket.EndSend(asyncResult);
            }
            catch (Exception ex)
            {

            }
        }

то при отправке длинных строк они не поделятся на фрагменты и не перемешаются? (то-есть отправится последовательно, непараллельно)
Заранее спасибо!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.