mohsen.net
شنبه 01 آبان 1389, 16:09 عصر
while (true)
{
try
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
tcp = new TcpClient();// creates new tcpclient
// connect to host
tcp.Connect(Config.RemotingServerIP, Config.Port);
networkStream = tcp.GetStream();// get nrtwork stream
binaryFormatter.Serialize(networkStream, ht);//serialize object and send it via networkstream
}
catch (Exception exp)
{
;
}
finally
{
//free all resource
if (networkStream != null)
networkStream.Close();
tcp.Close();
networkStream.Dispose();
}
مشکل این هست که وقتی با تعداد زیاد این کار انجام میشه (هر 350 میلی ثانیه ) تعداد سوکتهای در حالت TIME_WAIT به سرعت زیاد می شود و سوکتها بسته نمی شوند . با اینکه تو finally همه را می بندم
حتی زمان ماندن در حالت TIME_WAIT را در رجیستری از 240 به 30 کم کردم اما فرقی نکرد. بعد از اینکه تعداد سوکتهای در حالت TIME_WAIT خیلی زیاد شد Exception میده .کسی راهی برای بستن سوکتها داره؟ یا مدیریت اینکار؟
{
try
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
tcp = new TcpClient();// creates new tcpclient
// connect to host
tcp.Connect(Config.RemotingServerIP, Config.Port);
networkStream = tcp.GetStream();// get nrtwork stream
binaryFormatter.Serialize(networkStream, ht);//serialize object and send it via networkstream
}
catch (Exception exp)
{
;
}
finally
{
//free all resource
if (networkStream != null)
networkStream.Close();
tcp.Close();
networkStream.Dispose();
}
مشکل این هست که وقتی با تعداد زیاد این کار انجام میشه (هر 350 میلی ثانیه ) تعداد سوکتهای در حالت TIME_WAIT به سرعت زیاد می شود و سوکتها بسته نمی شوند . با اینکه تو finally همه را می بندم
حتی زمان ماندن در حالت TIME_WAIT را در رجیستری از 240 به 30 کم کردم اما فرقی نکرد. بعد از اینکه تعداد سوکتهای در حالت TIME_WAIT خیلی زیاد شد Exception میده .کسی راهی برای بستن سوکتها داره؟ یا مدیریت اینکار؟