tcp聊天交互】的更多相关文章

#****setver端 import socket sk = socket.socket() adress = ('127.0.0.1', 8032) sk.bind(adress) sk.listen(4) while 1: conn, addr = sk.accept() while 1: res_s = conn.recv(1024).decode('utf-8') print(res_s) if res_s == 'q': break res_f = input('>>>>…
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 <TCP/IP详解卷1:协议>第5章 RARP:逆地址解析协议-读书笔记 <TCP/IP详解卷1:协…
前边讲了TCP连接的建立和终止,分别要三次握手和四次通信.这些报文段都只包含首部,没有数据部分.    这里就讲讲数据传送的一些细节.一个TCP连接建立成功以后,就可以开始传送数据了~ 一般TCP数据传输中,按分组数量算的话,一半是成块数据(比如FTP应用),一半是交互数据(比如Telnet应用).如果按照字节数比较的话,成块报文段远远高于交互报文段(显然交互报文段都是几个字节的数据...) TCP的交互数据流: 比如Rlogin应用,每一次按键(每个字节)都会发送包,而不是敲一行命令回车后发送…
//创建新的tcp服务器var net = require('net');var chatServer = net.createServer()chatServer.on('connection',function(client){    client.write('Hi\n');    client.write('Bye\n');    client.end();})chatServer.listen(9000)/*代码的第一行,我们加载了net模块.这个模块包含了Node需要的所有TCP功能…
      TCP报文段一般有两类,分别是成块数据和交互数据. 1.交互式输入     Rlogin连接上键入一个交互命令的数据流如下图所示.     每一个交互按键都会产生一个数据分组,每次从客户传到服务器的是一个字节的按键.而Rlogin需要远程系统回显客户键入的字符,这样就会产生4个报文段:     (1)来自客户的交互按键     (2)来自服务器的按键确认     (3)来自服务器的按键回显     (4)来自客户的按键回显确认 2.延时确认     通常TCP在接收到数据之后不会立即…
19.1 引言 成块数据:比如ftp.电子邮件.Usenet新闻 交互数据:Telnet.Rlogin 成块数据的报文段基本上都是满长度(full-size)的,而交互数据小的多(Telnet和Rlogin分组中通常约90%左右的用户数据小于10个字节). 19.2 交互式输入 在Rlogin键入一个交互命令时所产生的数据流,一般需要下面四个步骤: 然而我们一般可以将报文段2和报文段3进行合并—也就是按键确认和按键回显一起发送.这就是经受时延的确认. 19.3 经受时延的确认 通常TCP在接收到…
19.1 引言 前一章我们介绍了TCP连接的建立与释放:三握四挥,以及状态转移图. TCP报文段分为:交互数据,以及成块数据(下一章介绍). 交互数据:例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等. 一些关于通信量的研究发现: 按分组数量计算:一半的TCP报文段包含成块数据(FTP,电子邮件,Usenet新闻),另外一半则包含交互数据(Telnet和Rlogin). 按字节计算:90% : 10%.这是因为成块数据基本上都是满长…
在TCP进行数据传输时,可以分为成块数据流和交互数据流两种,如果按字节计算,成块数据与交互数据的比例约为90%和10%,TCP需要同时处理这两类数据,且处理的算法不同. 书籍本章中以Rlogin应用为例观察交互数据的传输过程.提示经受时延的确认是如何工作以及Nagle算法怎样减少了通过广域网络传输的小分组的数目. 交互式输入 经受时延的确认上图第二,三个报文段可以合并---按键确认和按键回显一起发送.这种技术叫做经受时延的确认.通常TCP在接收到数据时并不立即发送ACK,相反,它推迟发送,以便将…
前面使用了UDP进行通信的聊天程序 现在做一个用TCP进行通信的聊天程序 原理: ServerSocket Socket 1.开一个线程监听端口,准备接收消息 2.不断接受消息发送到目的端口 P.S.因为TCP是面向连接的所以中间要注意先后顺序,代码写得有点乱 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; impor…
TCP需要同时处理两类数据:块数据.交互数据. 本章将以Rlogin应用为例观察交互数据的传输过程. 交互式输入 首先观察在一个Rlogin连接上键入一个交互命令时所产生的数据流(每键入一个交互按键都会产生一个数据分组),这会产生4个报文段: 1.来自客户的交互按键: 2.来自服务器的按键确认: 3.来自服务器的按键回显: 4.来自客户的按键回显确认. 然而,我们一般可以将报文段2和报文段3进行合并. 下图是在一个Rlogin连接中键入data\n(加上回车换行)时的 tcpdump输出结果 经…