ソケットを使用してファイルを転送の方法

ソケットを利用したファイル転送は、以下のような手順で構成されます。

  1. サーバー側でソケットを作成し、対応する IP アドレスとポート番号にバインドします。
  2. リッスン
  3. クライアント側はソケットを作成して、サーバー側のIPアドレスとポート番号に接続します。
  4. 受け入れる
  5. クライアントとサーバーは、新しいソケットからデータ送信を行っています。
  6. クライアントは送信するファイルデータをサーバーに送信し、サーバーはそれを受け取りローカルファイルに保存します。
  7. ソケット通信でクライアントとサーバーの通信が終了したらソケット接続を閉じる。

次に簡単なサンプルコードを示します。

サーバー側のコード:

import socket

# 创建socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定IP地址和端口号
server_address = ('localhost', 8888)
server_socket.bind(server_address)

# 开始监听
server_socket.listen()

# 接受客户端连接请求
client_socket, addr = server_socket.accept()

# 接收文件数据并保存到本地文件
with open('received_file.txt', 'wb') as file:
    while True:
        data = client_socket.recv(1024)
        if not data:
            break
        file.write(data)

# 关闭连接
client_socket.close()
server_socket.close()

クライアントコード:

import socket

# 创建socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
server_address = ('localhost', 8888)
client_socket.connect(server_address)

# 打开要传输的文件
with open('file_to_send.txt', 'rb') as file:
    # 读取文件数据并发送给服务器
    while True:
        data = file.read(1024)
        if not data:
            break
        client_socket.sendall(data)

# 关闭连接
client_socket.close()

実際のアプリケーションでは、より多くの例外処理、データ検証、セキュリティ検証などを追加する必要があるかもしれません。

bannerAds