TidTcpSever 和 TidTcpClient 怎样握手连接? ( 积分: 100 )

  • 主题发起人 主题发起人 let_it_be
  • 开始时间 开始时间
L

let_it_be

Unregistered / Unconfirmed
GUEST, unregistred user!
TidTcpSever 和 TidTcpClient 怎样握手连接?局域网内
 
通过主机IP和端口连接。
 
你是想自己动手设计一个握手方式,来控制连接的有效性. 还是要了解TCP的连接方式?

如果是自己动手设计一个握手方式:
step1: TCPClient 连接 TCPServer - 连接成功.继续
step2: TCPClient 发送握手信息(handshake)给 TCPServer - TCPServer到得TCPClient发送的握手信息, 校验握手信息正确->将自己的握手信息发给对方(TCPClient). 接下来就是TCPClient来判断TCPServer发来的握手信息的正确性了.

任何一方检查握手信息不正确都主动断开连接.否则握手成功.
 
问题是双方不知道对方的 IP,怎么搞?
 
如果你如iceapi的例子是为了来控制连接的有效性,
那么你已经建立了连接,怎么会不知道双方IP,客户端主动向服务端直接idclient.writebuffer(handshake,length)就行了,不需要考虑IP。

如果是想了解tcp建立连接时三次握手,
第1次客户端:syn请求
第2次服务端:syn-ack
第3次客户端:ack
握手的时候,数据字段是空的,无内容。靠选项字段标示
这是一个syn请求还是一个syn-ack或是ack。
这种底层的东西推荐你看《tcp/ip详解卷》第2卷。
或者用snffier研究一下RFC协议。
 
不知道对方IP,你怎么能够连接呢?
TCP本身连接跟传输就会有自己的握手信号的。
UDP才需要自己设计握手跟心跳的
 
建议楼主去看些网络编程的书跟DEMO。
 
先用 udp ,广播,通过广播得到对方的IP,然后可以用 TCP进行连接。
 
先用 udp ,广播,通过广播得到对方的IP,然后可以用 TCP进行连接。
 
接受答案了.
 
后退
顶部