![]() |
1
3
(这就是最终让一切为我工作的原因) 确保中的插座连接到的每个插座都具有
|
![]() |
2
0
您必须确保释放对象所持有的资源,以便对其进行垃圾收集。否则它就不会被垃圾收集,而是留在内存中的某个地方。您的伪代码示例没有提供您正在进行资源释放,您只是声明对象已(应该)被垃圾回收。 |
![]() |
3
0
垃圾收集器不能保证套接字将永远关闭。有关完整的示例,请阅读以下内容 MSDN example .
主要的一点是实际调用
|
![]() |
4
0
垃圾收集器在某个不确定的时间运行对象的终结器。 您可以实现IDisposable接口并在对象失去作用域之前调用Dispose()方法,或者让using语句为您这样做。 http://msdn.microsoft.com/en-us/library/system.idisposable.aspx 和 http://msdn.microsoft.com/en-us/library/yh598w02.aspx
using System; using System.Net.Sockets; using System.Net; namespace ConsoleApplication1 { class Program { class ClassA : IDisposable { protected Socket s; public ClassA() { s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Bind(new IPEndPoint(IPAddress.Any, 5678)); } public void Dispose() { s.Close(); } } static void Main(string[] args) { using(ClassA a=new ClassA()) { } using (ClassA b = new ClassA()) { } } } } |
![]() |
5
0
最好的解决方案是重试绑定套接字几次(2-3次)。在第一次尝试时,如果失败,我发现它将正确(永久)关闭原始套接字。 嗯,,
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
|
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 6 月前 |
![]() |
CactusCake · if语句中应有分号 7 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 7 月前 |