나는 파이썬에 익숙하지 않다. 그리고 그들 사이에 파일을 보낼 수 있도록 멀티 쓰레드 tcp 서버와 클라이언트를 만들려고 노력 중이다. 이 두 프로그램에 대한 간단한 코드를 작성했지만 서버의 사이트에 빈 파일이 생길 때마다 작성했습니다. 파일은 폴더에 생성되지만 열 때 내부에 비어 있습니다. 또한 .png 파일을 보내려고했으나 Windows 포토 뷰어가 비어 있음을 열지 않습니다. 내가비어있는 파일을 파이썬의 tcp 서버로 보낸 후
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()
여러 클라이언트가 동시에 해당 서버에 연결할 수 있도록 TCP 서버를 만들려고합니다. 따라서 간단한 서버가 나를 위해 조금 쓸모가 없지만 링크를 사용하여 학습해볼 것입니다. 당신이 제공 한 – kalleye