Qual è la differenza tra BeginConnect e ConnectAsync ? Successivamente, qual è la differenza tra BeginDisconnect e DisconnectAsync ? La documentazione ConnectAsync afferma: “Inizia una richiesta asincrona per una connessione host remota.” La documentazione BeginConnect afferma inoltre : “Inizia una richiesta asincrona per una connessione host remota.” Sia DisconnectAsync che BeginDisconnect anche la stessa cosa: […]
In Linux, è ansible specificare la dimensione del buffer di ricezione predefinita del sistema per i pacchetti di rete, ad esempio UDP, utilizzando i seguenti comandi: sysctl -w net.core.rmem_max= sysctl -w net.core.rmem_default= Ma mi chiedo, è ansible che un’applicazione (ad esempio, in c ) sovrascriva i valori predefiniti del sistema specificando la dimensione del buffer […]
Ecco la prova. Qualche idea di cosa c’è di sbagliato in questo codice? [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 { […]
Se scrivo solo su un socket su un stream di output, bloccherà mai? Solo le letture possono bloccare, giusto? Qualcuno mi ha detto che le scritture possono bloccare, ma vedo solo una funzione di timeout per il metodo di lettura di un socket – Socket.setSoTimeout() . Non ha senso per me che una scrittura possa […]
La libreria OpenSSL consente di leggere da un socket sottostante con SSL_read e scrivere su SSL_write. Queste funzioni possono essere restituite con SSL_ERROR_WANT_READ o SSL_ERROR_WANT_WRITE a seconda delle esigenze del protocollo ssl (ad esempio quando si rinegozia una connessione). Non capisco davvero cosa l’API voglia che faccia con questi risultati. L’imaging di un’app server che […]
Quale potrebbe essere il numero massimo di client concorrenti (utilizzando un numero di porta diverso) che potrebbero comunicare a un server sulla stessa porta (socket singolo)? Quali sono i fattori che potrebbero influenzare questo conteggio? Sto cercando queste informazioni su telnet in ambiente Linux.
Seguendo la mia domanda precedente, sono davvero curioso di questo codice – case AF_INET: { struct sockaddr_in * tmp = reinterpret_cast (&addrStruct); tmp->sin_family = AF_INET; tmp->sin_port = htons(port); inet_pton(AF_INET, addr, tmp->sin_addr); } break; Prima di fare questa domanda, ho cercato su SO lo stesso argomento e ho avuto risposte miste su questo argomento. Ad esempio, […]
Ho un sistema in cui un agente remoto invia strutture serializzate (da un sistema C incorporato) da leggere e archiviare tramite IP / UDP. In alcuni casi ho bisogno di inviare gli stessi tipi di struttura. Ho pensato di avere un buon setup usando Marshal.PtrToStructure (receive) e Marshal.StructureToPtr (send). Tuttavia, un piccolo trucchetto è che […]
Sto sviluppando un proxy TCP da mettere di fronte a un servizio TCP che dovrebbe gestire tra 500 e 1000 connessioni attive da Internet selvaggio. Il proxy è in esecuzione sulla stessa macchina del servizio ed è per lo più trasparente. Il servizio è per la maggior parte inconsapevole del proxy, con l’unica eccezione della […]
Ho un server multi-thread (pool di thread) che gestisce un numero elevato di richieste (fino a 500 / sec per un nodo), utilizzando 20 thread. C’è un thread listener che accetta le connessioni in entrata e le accoda per l’elaborazione dei thread del gestore. Una volta che la risposta è pronta, i thread scrivono al […]