我的专用服务器有 5 个可用的静态 IP 地址。该服务器的主要目标是创建和维护到单个目的地的数百个连接。可以理解的是,在建立了几百个连接之后,我遇到了套接字读/写异常和大量断开连接。发生这种情况的原因可能是目的地识别出单一源 IP 地址并暂时阻止它,或者因为 A 和 B 之间的单一链路变得不稳定。
实际上,我想见证在多个源 IP 地址之间划分连接的结果。
到目前为止,我的研究使我得到了像 this one 这样的问题和答案。 , 建议使用 ServicePoint.BindIPEndPointDelegate
.
但是,我想将整个控制台应用程序绑定(bind)到特定的 IP 地址。我该如何做到这一点?
注意:我目前正在使用 FluorineFX。如果存在一种解决方案来告诉 FluorineFX 从哪个 IP 地址进行连接,那也可以。
最佳答案
在 .NET 中使用 TCP 功能时,很容易指定源 IP 地址。如果您使用 TcpClient
,只需使用 TcpClient(IPEndPoint localEndPoint)
构造函数,它将它绑定(bind)到指定的本地 IP 地址。对于使用 Socket
建立的连接类,你需要使用 Bind(EndPoint localEP)
套接字上的方法将其与本地地址相关联。
关于c# - 如何在 C# 控制台应用程序中设置出站/发送 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491394/