TCP服务器
import socket
def main():
# 创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定端口
tcp_socket.bind(("", 8888))
# # 反射服务器
# signal = tcp_socket.recv(1024)
#
# tcp_socket.send(signal)
# 监听
tcp_socket.listen(128)
while True:
# 接收信息
cilent_socket, cilent_addr = tcp_socket.accept()
print("接收到来自%s的信息" % str(cilent_addr))
file_name = cilent_socket.recv(1024)
try:
file = open(file_name, "rb")
while True:
data = file.readline()
if data:
cilent_socket.send(data)
else:
break
except Exception as error:
print("文件不存在")
else:
file.close()
print("已发送文件")
break
cilent_socket.close()
if name == ‘main‘:
main()
TCP客户端
import os
import socket
def main():
# 创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 输入目标服务器ip port 还有文件名
server_ip = input("请输入服务器IP:")
server_port = int(input("端口号:"))
file_name = input("文件名")
# 建立连接
tcp_socket.connect((server_ip, server_port))
tcp_socket.send(file_name.encode())
# 打开文件
file = open(file_name, "rb")
# 记录收到的字节数
count = 0
# 循环接收数据
while True:
data = tcp_socket.recv(1024)
if data:
file.write(data)
count += len(data)
else:
file.close()
if count == 0:
print("文件不存在")
os.remove(file_name)
else:
print("文件传输完毕 断开连接")
break
tcp_socket.close()
if name == ‘main‘:
main()