Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Strano errore con le socket

Ho un software che è sempre andato bene, ultimamente mi sono accorto che venivano loggati alcuni errori mentre si cercava di stabilire una comunicazione con le soket, andando a vedere i log ho visto che l'errore era il 10035 o WSAEWOULDBLOCK . Questo errore si verifica per socket non bloccanti, ma nel mio caso il valore della proprietà Blocking era pari a true. Dopo 10 min di ricerca mi imbatto in questo post. Leggendo vedo un moderatore che consiglia di fare questo workaround

As a temporary workaround you may want to explicitly set the Blocking property to true right before you call receive.

client.Blocking = true;
client.Receive(buffer);

Effettivamente cosi l'errore non si verifica più, ma mi rimane comunque un senso di incertezza, perché questo significa che probabilmente la WinSock sottostante in alcuni casi perde lo stato di blocking, stato che deve essere reimpostato dall'esterno. (Disassemblando si può facilmente vedere come il setter della proprietà Blocking invi un comando di I/O alla Winsock), chiaramente reimpostandolo prima di ogni lettura il problema non si pone. Qualcun altro è mai incappato in questa situazione?

Alk.

Print | posted on giovedì 25 ottobre 2007 11:00 | Filed Under [ .NET ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET