-
-
Save giefko/2fa22e01ff98e72a5be2 to your computer and use it in GitHub Desktop.
import socket # Import socket module | |
s = socket.socket() # Create a socket object | |
host = "1somehing.11somehing." #Ip address that the TCPServer is there | |
port = 50000 # Reserve a port for your service every new transfer wants a new port or you must wait. | |
s.connect((host, port)) | |
s.send("Hello server!") | |
with open('received_file', 'wb') as f: | |
print 'file opened' | |
while True: | |
print('receiving data...') | |
data = s.recv(1024) | |
print('data=%s', (data)) | |
if not data: | |
break | |
# write data to a file | |
f.write(data) | |
f.close() | |
print('Successfully get the file') | |
s.close() | |
print('connection closed') |
import socket # Import socket module | |
port = 50000 # Reserve a port for your service every new transfer wants a new port or you must wait. | |
s = socket.socket() # Create a socket object | |
host = "" # Get local machine name | |
s.bind((host, port)) # Bind to the port | |
s.listen(5) # Now wait for client connection. | |
print 'Server listening....' | |
while True: | |
conn, addr = s.accept() # Establish connection with client. | |
print 'Got connection from', addr | |
data = conn.recv(1024) | |
print('Server received', repr(data)) | |
filename='TCPSERVER.py' #In the same folder or path is this file running must the file you want to tranfser to be | |
f = open(filename,'rb') | |
l = f.read(1024) | |
while (l): | |
conn.send(l) | |
print('Sent ',repr(l)) | |
l = f.read(1024) | |
f.close() | |
print('Done sending') | |
conn.send('Thank you for connecting') | |
conn.close() |
thank you
how can we create a permanent connection between server and client?
You can't create a permanent connection. Once either system undergoes a shutdown the connection will be broken. Why would you want a permanent connection? Just set the server to constantly listen for new connections and have the clients connect as needed.
I want to create a connection which look for new data from a folder and when new data comes send it to serve and should not close automatically. And it is a images data.
A better method would be to have a script that watches that folder and opens connections to the server when new data enters that folder. That will remove the problem of having a constantly open connection and the server would only have to worry about listening for any new connections.
i run the code but it is not working
@Sirernest what was the error or the output? Have you try to run it with Python 2.7 or higher? Are you using Windows, Linux which OS?
Provide me more infos and may i or somEbody else is able here to help you out. :)
Check this out. File tranfer via socket. It is the easiest code https://youtu.be/SZyd7xGTBkw
Is this OS is linux?
@kimakuma no this is on Windows but i remember that is running also in Linux maybe with a few changes.
@hightTest nice thank you
The file transfer for large files is slow as hell of course if we can make it faster it could be good. Please check it guys
where does it save the file ?
Does this work on python 3.8? I can't quite seem to get it working (even when fixing the print statements).
On the client side he doesn't need to call f.close() but on the server side he needs it.