c# - 如何在 C# 控制台应用程序中设置出站/发送 IP 地址?

标签 c# sockets networking

我的专用服务器有 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/

相关文章:

sockets - 乔卡姆 : problems with remote connection

sockets - 如何为 Go 中写入的每个连接发送单独的数据包?

linux - 如何在网桥上生成套接字错误

c# - IronPython ResourceMetaPathImporter 失败

c# - 使用 IDictionary 接口(interface)封装字典,而不是覆盖或隐藏方法

c# - 如何为 GroupBox 标题使用样式?

无法使用在 c 中处理多个客户端的服务器在客户端之间平均分配工作

java - LAN 中不同计算机上的 JVM 与其他计算机进行通信的最快方式是什么?

linux - 将 float IP 转发到内部端口

c# - 为什么 C# 编译器无法检测到 this 不能为 null?