У меня есть этот код, который запущен в производство, но я пытаюсь проверить его локально.
Это служба TCP, и я пытаюсь создать клиент-тестер.
Служба примет соединение, но застревает при попытке прочитать первый запрос.
Это код сервера.Он застревает на var bytesRead = await socket.ReadAllAsync (...
private Task<PackedVarSet> GetRequest(Socket socket, int requestLength)
{
return WithPooledBuffer(requestLength + sizeof(int), async (buffer, length) =>
{
int offset = sizeof(int);
int messageSize = length - offset;
var bytesRead = await socket.ReadAllAsync(buffer, offset, messageSize).ConfigureAwait(false);
if (bytesRead != messageSize)
{
throw new Exception($"Incorrect message length detected. Expected {messageSize} bytes, but received {bytesRead} bytes.");
}
BitConverter.GetBytes(messageSize).BlockCopyTo(buffer);
try
{
return new PackedVarSet(buffer);
}
catch(Exception ex)
{
var hex = BitConverter.ToString(buffer, 0, length).Replace("-", " ");
var msg = $"The following message was unreadable.{hex.Insert(0, Environment.NewLine, 48)}{Environment.NewLine}";
LogEntry(msg, ex);
}
return null;
});
}