Preface memo, section3 python3 code

merge-requests/2/head^2
Jeff Chen 4 years ago
parent ca68e8f374
commit ce9a8f94c4

@ -7,3 +7,4 @@
掌握以太网、802.11、ARP、IP、ICMP和TCP等重要协议传输单元结构 掌握以太网、802.11、ARP、IP、ICMP和TCP等重要协议传输单元结构
深入理解相关网络命令和重要协议算法的工作原理, 深入理解相关网络命令和重要协议算法的工作原理,
从而培养网络故障检测、网络性能改进和网络安全分析的能力。 从而培养网络故障检测、网络性能改进和网络安全分析的能力。
(备注第二版将增补实验1.4: IEEE 802.11协议分析。)

@ -467,3 +467,59 @@ CUBIC的关键特征是cwnd窗口的增长依赖两次丢包的时间。
\item (10分)完成任2道思考题。 \item (10分)完成任2道思考题。
\item (10分)记录自己在本次实验中所遇到的问题,以及心得感悟实验总结。 \item (10分)记录自己在本次实验中所遇到的问题,以及心得感悟实验总结。
\end{enumerate} \end{enumerate}
\subsection{附录}
\label{subsec:c1_s3_additionalprg}
1 Python3 TCP socket通信程序。
\ 服务端 server.py
\lstset{language=python3}
\begin{lstlisting}
import socket
import time
def recv_data(sock,length):
data=b''
while len(data) < length:
more = sock.recv(length - len(data))
if not more:
pass
data += more
return data
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置接收缓冲区大小为1024
s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1024)
s.bind(('0.0.0.0', 9999))
s.listen(1)
print("Sever listening on 9999...")
try:
sc, addr = s.accept()
while True:
rcvdata = recv_data(sc,16)
time.sleep(0.01)
pass
finally:
sc.close()
s.close()
\end{lstlisting}
\\
\ 客户端
\lstset{language=python3}
\begin{lstlisting}
import socket
import time
ip_port = ("192.168.100.144", 9999)
data = "0123456789\n"*100
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
c.connect(ip_port)
print("Connected.")
time.sleep(1)
i=0
while i<10:
print("Send:"+data)
c.send(data.encode())
i=i+1
finally:
print("Sent. Waiting....")
while True:
time.sleep(0.001)
\end{lstlisting}
Loading…
Cancel
Save