Socket和Socket之间有什么不同?Connect和Socket.BeginConnect
本文关键字:Socket BeginConnect Connect 什么 之间 | 更新日期: 2023-09-27 18:16:16
我遇到了一个非常奇怪的问题:当我在unity3d webplayer中使用Socket.Connect()时,遇到了"System.Security. security "。SecurityException:无法连接,因为没有找到有效的跨域策略",但是对于Socket.BeginConnect()来说是可以的,那么有什么区别呢?
插座。连接:http://msdn.microsoft.com/en-us/library/ych8bz3x.aspx
插座。BeginConnect http://msdn.microsoft.com/en-us/library/6aeby4wt%28VS.80%29.aspx
由于文档状态Connect是同步的,这意味着它将阻塞当前线程,直到连接完成。
BeginConnect方法是异步的,这意味着它将在不同的线程中进行连接,并在连接完成时返回通知。它不会阻塞当前调用线程。你需要调用EndConnect插座。ConnectAsync提供SocketAsyncEventArgs作为一个参数,与BeginConnect提供的3个参数相比,它包含了更多的信息。我还知道ConnectAsync比BeginConnect晚引入,解决了一些与超时相关的问题(现在不记得这个讨论的来源)。在可能的情况下选择ConnectAsync(尽管它需要最小的。net 2.0 SP1)。
Silverlight中不支持BeginConnect方法(只支持ConnectAsync),所以如果你打算开发客户端Silverlight应用程序,这可能是另一个问题。