python3 最简单的网络编程tcp(socket数据流)

python

TCP 基于连接的、 是连续的、 可靠的、 效率⽐较低、 更像是打电话, 聊天的过程中不能中断。

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

 

服务器端

# tcp_server.py

import socket

sk = socket.socket() # 创建socket对象

sk.bind(("127.0.0.1", 9998)) # 绑定IP和端口

sk.listen() # 开启监听

conn, address = sk.accept() # 等待客户端连接 阻塞

while 1: # 让服务端和客户端循环通信

send_msg = input(">>>:").strip() # 要发送的消息

conn.send(send_msg.encode("utf-8")) # 发送消息给客户端

if send_msg.upper() == "BYE": # 如果发送的消息是BYE就退出循环

break

recv_msg = conn.recv(1024) # 接收来自客户端的消息

print("来自客户端的消息:", recv_msg.decode("utf-8"))

if recv_msg.decode("utf-8").upper() == "BYE": # 如果来自客户端的消息是BYE就退出循环

break

conn.close() # 关闭conn连接

sk.close() # 关闭sk连接

 

socket套接字 port|IP|mac|数据,所以叫套接字

tcp服务端

  1、导入socket模块

  2、创建socket对象

  3、绑定IP和端口

  4、开启监听

  5、等待客户端连接,阻塞

  6、发送消息给客户端,阻塞

  7、接收来自客户端的消息  

  8、关闭conn连接

  9、关闭socket连接 

 

客户端

# tcp_client.py

import socket

sk = socket.socket() # 创建socket对象

sk.connect(("127.0.0.1", 9998)) # 连接服务端

while 1: # 服务端和客户端循环通讯

recv_msg = sk.recv(1024) # 接收来自服务端的消息

print("来自服务端的消息:", recv_msg.decode("utf-8"))

if recv_msg.decode("utf-8").upper() == "BYE": # 如果来自服务端的消息是BYE就直接退出循环

break

send_msg = input(">>>:").strip() # 要发送给服务端的消息

sk.send(send_msg.encode("utf-8")) # 发送消息给服务端

if send_msg.upper() == "BYE": # 如果发送的消息是BYE就直接退出循环

break

sk.close() # 关闭sk连接

 

tcp客户端:

  1、导入socket模块

  2、创建socket对象

  3、建立socket连接

  4、接收来自于服务端的消息 

  5、发送消息给客户端

  6、关闭socket连接

 

注意:

  1、先启动服务器端程序,再启动客户端程序。

  2、服务器端先发送消息,客户端收到消息后,再发送消息给服务器端。(程序怎么写,谁先发送消息)

以上是 python3 最简单的网络编程tcp(socket数据流) 的全部内容, 来源链接: utcz.com/z/388927.html

回到顶部