c# - tcp/ip 接受不返回,但客户端返回

标签 c# .net c#-2.0 tcp vxworks

服务器:
vxworks 6.3
调用通常的套接字、绑定(bind)、监听,然后:

for (;;)
{
  client = accept(sfd,NULL,NULL);
  // pass client to worker thread
}

客户:
.NET 2.0
TcpClient 构造函数连接到采用字符串主机名和 int 端口的服务器,例如:

TcpClient client = new TcpClient(server_ip, port);

当服务器在 Windows( native C++)中编译和执行时,这工作正常。

间歇性地,TcpClient 的构造函数会返回实例,不会抛出任何异常,但是vxWorks 中的accept 调用不会返回客户端fd。 tcpstatShow 表示没有发生接受。

什么可能使 TcpClient 构造函数(调用“Connect”)返回实例,而服务器上的 accept 调用不返回?这似乎与系统在后台执行的操作有关 - 当客户端尝试连接时,当服务器忙于将数据持久保存到闪存或 NFS 共享时,似乎更有可能出现此症状,但可能会在客户端尝试连接时发生也不是。

我试过调整运行 accept 的线程的优先级
我在“听”中查看了队列的大小。够了。
可用的文件描述符总数应该足够了(不过还没有验证,早上的第一件事)

最佳答案

您能否发布关于网络上发生的情况的 wireshark/netmon?

关于c# - tcp/ip 接受不返回,但客户端返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002997/

相关文章:

c# - IDataRecord 的 OverFlowException

c# - 使用 LINQ 比较查询中的日期

c# - 查询获取access数据库中表的主键

c - 在 C 和 C# 应用程序之间进行 IPC 的最快方法是什么?

c# - Kendo UI 数字文本框 - 最大值

C# 等待进程启动

.net - 适用于 Windows 98 的 .NET 2.0 应用程序安装程序

.net - Visual Studio 调试引用的 DLL

configuration - 通过配置管理器从 AppSettings 中获取 StringCollection

python - Django channel + 在发布请求后发送 websocket 消息