tcp协议简介
TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
TCP通信需要经过创建连接、数据传送、终止连接三个步骤。
TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据.
tcp客户端基本流程:
- import 导入socket模块
- socket 创建套接字
- connect 链接服务器
- send recv 收发数据
- close 关闭套接字
import socket
def main():
# 创建tcp套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# server_ip = input("输入服务器IP:")
# server_port = int(input("输入服务器port:"))
# 服务器信息
server_ip = "127.0.0.1"
server_port = 8888
server_addr = (server_ip, server_port)
# 链接服务器
tcp_client_socket.connect(server_addr)
# 输入数据
request = input("输入要发送的数据:").encode("utf-8")
tcp_client_socket.send(request) # 发送数据
# 接收响应,最大为1024个字节
response = tcp_client_socket.recv(1024).decode("utf-8")
print("来自服务器的数据:%s" % response)
# 关闭套接字
tcp_client_socket.close()
if __name__ == '__main__':
main()
tcp服务器基本流程:
- import 导入socket模块
- socket 创建套接字(监听套接字)
- bind 绑定服务器信息
- listen 设置套接字可被动链接
- accept 等待客户端连接,返回值是一个两个值的元组
(新的套接字(服务套接字,为某一个链接客户端服务),链接客户端地址) - send recv 收发数据
- close 关闭服务套接字
- close 关闭监听套接字
import socket
def main():
# 创建tcp套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# server_ip = input("输入服务器IP:")
# server_port = int(input("输入服务器port:"))
# 服务器信息
server_ip = "127.0.0.1"
server_port = 8888
server_addr = (server_ip, server_port)
# 链接服务器
tcp_client_socket.connect(server_addr)
# 输入数据
request = input("输入要发送的数据:").encode("utf-8")
tcp_client_socket.send(request) # 发送数据
# 接收响应,最大为1024个字节
response = tcp_client_socket.recv(1024).decode("utf-8")
print("来自服务器的数据:%s" % response)
# 关闭套接字
tcp_client_socket.close()
if __name__ == '__main__':
main()