Example Python3 Client
client.py
—
Python Source,
1 KB (1870 bytes)
File contents
#!/usr/bin/env python3
# Simple network socket demo - CLIENT
#
# Set script as executable via: chmod +x client.py
# Run via: ./client.py <IP> <PORT>
#
# To connect to a server on the same computer, <IP> could
# either be 127.0.0.1 or localhost (they have the same meaning)
import socket
import sys
def main():
if len(sys.argv) != 3:
print("Error: Program needs <IP> and <PORT> arguments")
sys.exit()
# Tip: You should use argparse - this method
# is sloppy and inflexible
ip = sys.argv[1]
port = int(sys.argv[2])
# Create TCP socket
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error as msg:
print("Error: could not create socket")
print("Description: " + str(msg))
sys.exit()
print("Connecting to server at " + ip + " on port " + str(port))
# Connect to server
try:
s.connect((ip , port))
except socket.error as msg:
print("Error: Could not open connection")
print("Description: " + str(msg))
sys.exit()
print("Connection established")
# Send message to server
string_unicode = "Tiger Roar!"
raw_bytes = bytes(string_unicode,'ascii')
try:
# Send the string
# Note: send() might not send all the bytes!
# You should loop, or use sendall()
bytes_sent = s.send(raw_bytes)
except socket.error as msg:
print("Error: send() failed")
print("Description: " + str(msg))
sys.exit()
print("Sent %d bytes to server" % bytes_sent)
# Close socket
try:
s.close()
except socket.error as msg:
print("Error: unable to close() socket")
print("Description: " + str(msg))
sys.exit()
print("Sockets closed, now exiting")
if __name__ == "__main__":
sys.exit(main())
