にTCPサーバに送信した後、私のpythonに新しいですし、私はそれらの間でファイルを送信できるようにするには、TCPサーバとクライアントmultithrededを作るしようとしています。私はこれら二つのプログラムのためのいくつかの簡単なコードを書きましたが、毎回私は、サーバーのサイト上で空のファイルを取得します。ファイルはフォルダ内に作成されますが、開いたときには空白です。私はまた、彼らは空になっていると言って、それらを開きませんphotoviewerファイルが、Windowsを.PNG送信しようとしました。私は空のファイルのpython
Client.pyを求めています理由ですので、私はこのような問題をencourting人を見つけることができませんでした
import socket # Import socket module
HOST = "localhost" # Host address/name
PORT = 2137 # Reserves port for the service
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))
fileToSend = open('test.txt', 'rb')
print "File ready to be sent"
l = fileToSend.read(1024)
while l:
print "Sending the file"
client.send(l)
l = fileToSend.read(1024)
fileToSend.close() print "done"
client.close()
Server.py
import socket
from threading import Thread
from SocketServer import ThreadingMixIn
import sys
TCPHOST = "localhost"
TCPPORT = 2137
BUFFER_SIZE = 20
class ClientThread(Thread):
def __init__(self, HOST, PORT):
Thread.__init__(self)
self.HOST = HOST
self.PORT = PORT
print "New thread started for " + HOST + " on port " + str(PORT)
def run(self):
f = open('received.py', 'wb')
while True:
try:
data = conn.recv(1024)
except socket.error, e:
print "Error receiving data: %s" % e
sys.exit(1)
while data:
print "Receiving"
f.write(data)
data = conn.recv(1024)
f.close()
try:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((TCPHOST, TCPPORT))
print "Socket created"
except socket.error, err:
print "Failed to create socket" % err
threads = []
while True:
server.listen(4)
print "Waiting for connections"
(conn, (HOST, PORT)) = server.accept()
thread = ClientThread(HOST, PORT)
thread.start()
threads.append(thread)
for t in threads:
t.join()
T Iは、複数のクライアントが同時にそのサーバーに接続することを可能にするTCPサーバーを作成しようとしていますので、単純なサーバーは私のために少しuslessですが、私は、リンクと一緒に勉強しようとしますあなたが提供した – kalleye