当前位置: 首页 > 知识库问答 >
问题:

什么控制TCP段是传递给accept()的套接字还是accept()返回的套接字?

云新知
2023-03-14

在TCP套接字代码中,我们创建了2个套接字。第一个接收新连接,第二个接收来自客户端的数据,并在建立新连接时创建。

TCP报头中的什么控制位允许服务器知道是将此段传递给ServerSocket(连接请求被发送到的那个)还是Socket(连接建立后为通信而创建的Socket)?

共有1个答案

相诚
2023-03-14

TCP报头中的什么控制位允许服务器知道是将此段传递给ServerSocket(连接请求被发送到的那个)还是Socket(连接建立后为通信而创建的Socket)?

除了SYN,没有这样的控制位。如果TCP数据包到达,并且与该4元组{源IP,源端口,目的IP,目的端口}建立了TCP连接,则该数据包将被传递到该连接的本地套接字。如果不是,如果有一个序列号未完成的连接,那么它可能是对SYN-ACK的ACK,这会导致该半格式的连接被放置在侦听积压队列中。否则,这是一个错误,并导致发出RST。

 类似资料:
  • 套接字由ip:port定义。服务器和客户端都将有自己的套接字 套接字连接由五个touples定义:server_ip、server_port、client_ip、client_port、protocol 套接字描述符是标识套接字的整数值 我尝试实现自己的服务器,其中socket()和accept()返回不同的套接字描述符值(总是这样吗?)。我的问题是,为什么说accept()会创建一个新的套接字,

  • 问题内容: 我有一个客户端服务器程序在服务器端使用套接字,并且读写发生在这种方式 同样在cilent(android)方面… 问题是,建立连接后,程序会卡住它们,没有错误,也没有异常。停下来 问题答案: 这是一个死锁,您必须首先创建并刷新ObjectOutputStream。这是因为ObjectInputStream在继续操作之前先读取OOS发送的标头。

  • 当我进行套接字编程时,我无法清楚地理解。 我的理解是 如果我使用此选项打开套接字,表示我可以在header之前创建自己的header,但最终数据以 /code>协议的格式发送。我的理解是正确的。如果错了,可以一些解释。 谢谢

  • 这让我想到了一些问题: 此TCP套接字是另一种类型的Unix域套接字吗?这个TCP套接字到底是什么? 文件中提到的cosocket是什么?我用谷歌找不到 TCP/IP模型的传输层也使用TCP协议,此API是否允许直接在传输层编程,绕过应用层?

  • 本文介绍:http://tldp.org/howto/tcp-keepalive-howto/overview.html 它指出TCP保持有效的原因是: null TCP keepalive对于上面的情况仍然是必要的吗?

  • 问题内容: 任何人都可以通过TCP发送Ascii msg的示例给我(在网上找不到示例) 谢谢, 射线。 问题答案: 这是一个写入和读取回显服务器的示例。 简化摘录: