利用socket和文件读写,写一个从客户端传输文件到服务端的程序
时间: 2024-05-14 20:14:10 浏览: 15
服务端代码:
```python
import socket
HOST = '127.0.0.1'
PORT = 9999
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print(f"Server is listening on port {PORT}...")
conn, addr = s.accept()
print(f"Connected by {addr}")
with conn:
filename = conn.recv(1024).decode()
print(f"Receiving {filename}...")
with open(f"received_{filename}", "wb") as f:
while True:
data = conn.recv(1024)
if not data:
break
f.write(data)
print("File received successfully!")
```
客户端代码:
```python
import socket
HOST = '127.0.0.1'
PORT = 9999
filename = input("Enter filename to send: ")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(filename.encode())
with open(filename, "rb") as f:
while True:
data = f.read(1024)
if not data:
break
s.sendall(data)
print(f"{filename} sent successfully!")
```
运行服务端程序后,运行客户端程序并输入要传输的文件名,即可将文件传输到服务端。服务端会将文件保存在当前目录下,并在控制台输出传输成功的消息。