加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

如何用Python实现TCP的连接与通信?

发布时间:2020-01-01 08:53:24 所属栏目:站长百科 来源:站长网
导读:副问题#e# 收集毗连与通讯是我们进修任何编程说话都绕不外的常识点。Python 也不破例,下面就先容因特网的焦点协议 TCP ,以及怎样用 Python 实现 TCP 的毗连与通讯。 TCP 协议 TCP协议(Transmission Control Protocol, 传输节制协议)是一种面向毗连的传输

import socketimport threadingimport time# 处理赏罚tcp毗连def tcplink(conn, addr):  print("Accept new connection from %s:%s" % addr)  # 向客户端发送接待动静  conn.send(b"Server: Welcome!n")  while True:    conn.send(b"Server: What's your name?")    data = conn.recv(1024)    # 假如客户端发送 exit 过来哀求退出,竣事轮回    if data == b"exit":      conn.send(b"Server: Good bye!n")      break    conn.send(b"Server: Hello %s!n" % data)  time.sleep(5)  # 封锁毗连  conn.close()  print("Connection from %s:%s is closed" % addr)# 建设 sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 监听端口s.bind(("127.0.0.1", 6000))# 设定守候毗连的最大数目为5s.listen(5)print("Waiting for connection...")# 守候吸取毗连while True:  # 接管一个新毗连  conn, addr = s.accept()  # 建设新线程来处理赏罚TCP毗连  t = threading.Thread(target=tcplink, args=(conn, addr))  t.start() 

客户端代码:

import socketimport time# 建设 sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 成立毗连s.connect(("127.0.0.1", 6000))# 吸取处事器动静print(s.recv(1024).decode())for data in [b'Michael', b'Tracy', b'Sarah']:  # 发送数据  s.send(data)  time.sleep(2)  # 打印吸取到的数据  print(s.recv(1024).decode('utf-8'))  time.sleep(1)time.sleep(3)# 哀求退出s.send(b'exit')time.sleep(2)print(s.recv(1024).decode('utf-8'))# 封锁毗连s.close() 

留意,在代码中,我插手了一些休眠(sleep)操纵,首要是为了节制台可以或许顺遂打印出来,否则措施运行太快,打印次序和内容有也许和预期纷歧样。

先运行处事器端代码,然后再运行客户端代码,我们可以看随处事器端节制台打印内容如下:

#处事器端打印动静 Waitingforconnection... Acceptnewconnectionfrom127.0.0.1:53503 Connectionfrom127.0.0.1:53503isclosed 

客户端节制台打印内容如下:

#客户端打印动静 Server:Welcome!Server:What'syourname? Server:HelloMichael! Server:What'syourname? Server:HelloTracy! Server:What'syourname? Server:HelloSarah! Server:What'syourname? Server:Goodbye! 

各人可以比较着打印内容和代码,领会一下处事器端和客户端通讯的道理。

总结

本文为各人先容了 TCP 编程的根基道理和怎样行使 Python 实现一个最简朴的 TCP 通讯进程。通过先容和实例,各人要在脑海中形成一个 TCP 通讯的进程,认识了这个进程是处理赏罚后续伟大通讯需求的基本。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读