IOS 8.0.2在套接字关闭时不发送TCP FIN

时间:2014-10-20 12:19:49

标签: ios multithreading sockets tcp posix

您好我偶然发现了IOS 8.0.2上的一个奇怪问题

我的应用程序使用posix api创建tcp套接字连接到服务器,并通过它发送一些数据。使用套接字句柄调用和close(),程序终止。 我已经注意到只有退出程序后才会将TCP FIN数据包发送到服务器。 要解决这个问题,我必须在套接字上使用shutdown()调用。 任何想法为什么会这样? 也许是因为套接字在一个线程中创建并在另一个线程中关闭?

1 个答案:

答案 0 :(得分:0)

您必须使用shutdown来启动FIN序列。请注意,shutdown仅向内核发出命令以启动序列,该序列与进程调用的shutdown异步进一步异步。 close调用只释放套接字的资源。