Я работаю над финансовым приложением с низкой задержкой, которое получает tcp-данные через сокеты.
Вот так я делаю соединение с сокетом и получаю байты:
public class IncomingData
{
Socket _Socket;
byte[] buffer = new byte[4096];
public static void Connect(IPEndPoint endPoint)
{
_Socket = new Socket(
AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
_Socket.Connect(endPoint);
}
public static void ReadSocket(int ReadQty)
{
_Socket.Receive(buffer, 0, ReadQty, SocketFlags.None);
}
}
Я слышал, что когдаВы вызываете Receive()
на сокете Stream, чтобы вызывающий поток был переведен в спящий режим, и он проснулся при получении данных.Я хотел бы, чтобы поток работал на полной скорости (с использованием процессорной мощности).
Есть ли способ сделать это с помощью сокета Stream?Если единственный способ заключается в использовании Raw-сокета, не могли бы вы привести пример?