一种基于TCP的网络聊天软件实现

  • 格式:pdf
  • 大小:1.81 MB
  • 文档页数:2

d a t a = s o c k . r e c v ( 1 0 2 4 ) #在新的连接上接收数据 i f n o t d a t a : 襻如果没有接收到数据 , 可能客 户端连接已经关 闭, #则服 务端 也 关 闭连 接
s o c k . c l o s e ( )
包 ,此 时 服 务器 进 入 S Y NR E C V状 态 。

s = s o c k e t 。 s o c k e t ( s o c k e t . AF _ I NE T , s o c k e t . S OC I ( _ S T R E AM)
第 三 次握 手 :客 户端 收 到 服 务 器 的 s y n + a c k 包 , 向 服务 器 发送确 认包 a c k( a c k = k + l 1 ,此 包 发 送 完 毕 ,客 户 端 和 服 务 器 进人 E S T A B L I S HE D状 态 .完 成 三 次 握 手 。







‘ …














实用第一 / 智慧密集
… . … 。 … 。 … … … , … 。

种基于 T C P的网络聊天软件实现
陈 忠菊
( 辽 宁公 安 司法 管 理 干 部 学 院 ,沈 阳 1 1 0 1 6 1 )
h o s t = 。 。 I o c a l h o s t ” p o  ̄=l 0 0 0 0
s =s o c k e t . s O c k e t 《 s O c k e t . AF — I NE T . s o c k e t . SOCK — S TRE AM)
s . b i n d ( ( h o s t , p o r t ) )#绑定端 口 s . 1 i s t e n ( 5 1 #开 始侦 听
窖 报 序 序
端发送 a c k报 文, 并臀 序号为 Y , 在确 号为x +1
表示层和应用层 ) 。H r r r P属于会话层 ,T C P协议属于传输层 。
1 . 2 TCP
2 . 1 服 务 端
#一 一 e n c o di n g : u t f -8 一 一
通 过使用 S o c k e t 达到进程间通信 目的的编程就 是网络 编
程 。网络编程最主要 的T作就是在发送端把信息通过规定好的
协 议 进 行 组 装 包 ,在 接 收 端 按 照 规 定 好 的协 议 把 包 进 行 解 析 ,
从 而提取 对应 的信息 ,达到通信的 目的。巾间最 主要 的就是 数据包的组装 、数据包的过滤 、数据包的捕获 、数据包的分析 , 最后再做一些处理。I S O( 国际标准化组织 )组织定义了 7层网 络互联模 型 ( 物理层 、数据链路层、网络层 、传输层 、会话层 、
T C P连 接 建 立 通 常 需 要 经 过 3次 握 手 , 所 谓 3次 握 手 ( T h r e e — w a y Ha n d s h a k e ) ,是 指 建 立 一 个 T C P连 接 时 ,需 要 客 户
i mp o r t s o c k e t #导入 s o c k e t 模 块
wh i l e 1 :
s o c k , a d d r = s . a c c e p t ( ) #接 受 一个 连 接
p r i n t“ g o t c o n n e c t i o n f or m ” , s o c k . g e t p e e r n a me ( )
T C P( T r a n s mi s s i o n C o n t r o l P r o t o c o l 传输控制协议 )是一种 面 向连 接 ( 连接 导 向)的 、可靠 的 、基于 I P的传输 层协 议 , 南I E T F的 R F C 7 9 3说明 ( s p e c i i f e d ) 当应用 层 向 T C P层发送 用于网问传输 的 、用 8 位字节表示的数据流 ,T C P则把数据 流 分割成适当长度 的报文段 ,最大传输段 大小 ( MS S )通 常受该 计算机 连接 的网络 的数 据链路层 的最 大传送单 元 ( MT U)限 制 。之后 T C P把数据包传给 I P层 ,南它来通过 网络将 包传送 给接收端实体的 T C P层 T C P为了保证报文传输的可靠 ,就给每个包一个序号 ,同 时 序号也保证 了传送到接 收端实体 的包 的按 序接 收。然后 接 收端 实体 对 已成功 收到 的字节 发 同一个 相应 的确 认 ( A C K ) ; 如果发送端实体在合理的往返时延 ( R 盯 )内未收到确认 ,那 么对应的数据 ( 假设丢失了)将会被重传。
e l s e : p r i n t d a t a
2 . 2 客 户 端
#一 一 e n c o d i n g : u t f - 8一 一 i mp o r t s o c k e t h o s t =“ I o c a l h o s t ”
p o r t =l 0 0 0 0

要 :介 绍 了 T C P和 网络 编 程 的 基 本概 念 ,并 实现 了一 个 基 于 T C P的 网络 聊 天 程 序 。
关 键 词 :P y t h o n软 件 ;T C P协 议 ; 网络 聊 天
l 网络 编程
1 . 1 基 本 概 念
见下 面的案例。
T CP三 次握手
端 和服 务器总共发送 3个包。 第 一次握手 :建立连接时 ,客户端发送 s y n包 ( s y n = j )到 服务器 ,并进入 S Y N — S E N D状态 ,等待服务器确认 。 第 二次 握手 :服务 器 收到 s y n包 ,必须 确认 客 户 的 s y n
( a c k = i + 1 ) , 同 时 自 己也 发 送 一 个 s y n包 ( s y n = k ) ,即 s y n + a c k Байду номын сангаас