Articles of sockets

Com sockets C TCP, pode ‘enviar’ retornar zero?

É possível que a function C send retorne zero ao usar sockets TCP? A página man apenas diz que ele retornará o número de bytes enviados, mas não tenho certeza se ele retornará -1 quando não puder enviar nenhum dado.

Qual é a diferença entre BeginConnect e ConnectAsync?

Qual é a diferença entre BeginConnect e ConnectAsync ? Posteriormente, qual é a diferença entre BeginDisconnect e DisconnectAsync ? A documentação do ConnectAsync indica: “Inicia uma solicitação assíncrona para uma conexão de host remoto.” A documentação do BeginConnect também declara: “Inicia uma solicitação assíncrona para uma conexão de host remoto.” Tanto o DisconnectAsync quanto o […]

NetworkStream.ReadAsync com um token de cancelamento nunca cancela

Aqui a prova. Alguma ideia do que está errado neste código? [TestMethod] public void TestTest() { var tcp = new TcpClient() { ReceiveTimeout = 5000, SendTimeout = 20000 }; tcp.Connect(IPAddress.Parse(“176.31.100.115”), 25); bool ok = Read(tcp.GetStream()).Wait(30000); Assert.IsTrue(ok); } async Task Read(NetworkStream stream) { using (var cancellationTokenSource = new CancellationTokenSource(5000)) { int receivedCount; try { var buffer […]

Número máximo de conexões simultâneas em uma única porta (soquete) do servidor

Qual poderia ser o número máximo de clientes simultâneos (usando número de porta diferente) que poderiam se comunicar com um servidor na mesma porta (soquete único)? Quais são os fatores que podem influenciar essa contagem? Eu estou olhando para esta informação wrt telnet no ambiente Linux.

Como lidar com o OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE em sockets sem bloqueio

A biblioteca OpenSSL permite ler de um soquete subjacente com SSL_read e gravar nele com SSL_write. Essas funções talvez retornem com SSL_ERROR_WANT_READ ou SSL_ERROR_WANT_WRITE dependendo de suas necessidades de protocolo SSL (por exemplo, ao renegociar uma conexão). Eu realmente não entendo o que a API quer que eu faça com esses resultados. A criação de […]

soquete de java / stream de saída escreve: eles bloqueiam?

Se eu estiver apenas escrevendo para um soquete em um stream de saída, ele irá bloquear alguma vez? Apenas leituras podem bloquear, certo? Alguém me disse que as gravações podem bloquear, mas eu só vejo um recurso de tempo limite para o método de leitura de um soquete – Socket.setSoTimeout() . Não faz sentido para […]

Marshal.PtrToStructure (e vice-versa) e solução genérica para troca de endianness

Eu tenho um sistema onde um agente remoto envia estruturas serializadas (de um sistema C embutido) para eu ler e armazenar via IP / UDP. Em alguns casos, preciso enviar os mesmos tipos de estrutura. Eu pensei que tinha uma boa configuração usando Marshal.PtrToStructure (receive) e Marshal.StructureToPtr (send). No entanto, uma pequena pegadinha é que […]

Soquete do servidor asynchronous vários clientes

Eu tenho trabalhado com o seguinte código publicado no msdn: http://msdn.microsoft.com/pt-br/library/fx6588te.aspx Eu entendo que o aplicativo do servidor não está bloqueado enquanto o aplicativo está aguardando novos clientes. No entanto, essa aplicação (ou até mesmo sockets) pode lidar com várias solicitações simultâneas? O que aconteceria se o cliente A e B se conectassem ao mesmo […]

Um cliente TCP c # pode receber e enviar continuamente / consecutivamente sem dormir?

Esta é até certo ponto uma questão “básica de TCP”, mas ao mesmo tempo eu ainda tenho que encontrar uma resposta convincente em outro lugar e acredito que eu tenha uma boa / boa compreensão dos fundamentos do TCP. Não tenho a certeza se a combinação de perguntas (ou uma pergunta e enquanto eu estou […]

close () não está fechando o soquete corretamente

Eu tenho um servidor multi-threaded (pool de threads) que está lidando com um grande número de solicitações (até 500 / seg para um nó), usando 20 threads. Há um encadeamento de ouvinte que aceita conexões de input e as enfileira para que os encadeamentos do manipulador sejam processados. Assim que a resposta estiver pronta, os […]