import socket
import sys
class SimpleClient:
def __init__(self, client_socket, statusMessage):
self.client_socket = client_socket
self.statusMessage = statusMessage
def connectToServer(self):
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'cs5700sp15.ccs.neu.edu'
port = 27993
remote_ip = socket.gethostbyname(host)
try:
self.client_socket.connect((remote_ip, port))
except socket.error:
print ('Connection failed')
sys.exit()
print ('Connection successful')
def sendHelloMessage(self):
"""This funtion sends the initial HELLO message to the server"""
nu_id = input('Enter your NUID: ')
hello_message = 'cs5700spring2015 HELLO {}\n'.format(nu_id)
self.client_socket.send(bytes(hello_message, 'ascii'))
def receiveStatusMessage(self):
"""This function receives the STATUS message from the server"""
self.statusMessage = str(self.client_socket.recv(1024))
print (self.statusMessage)
#handleStatusMessage()
def main():
client = SimpleClient()
client.connectToServer()
client.sendHelloMessage()
client.receiveStatusMessage()
if __name__ == "__main__":main()
I get the following error:
Traceback (most recent call last):
File "/Users/sanketdeshpande/Documents/workspace/test/project01-simpleclient.py", line 49, in <module>
if __name__ == "__main__":main()
File "/Users/sanketdeshpande/Documents/workspace/test/project01-simpleclient.py", line 44, in main
client = SimpleClient()
TypeError: __init__() missing 2 required positional arguments: 'client_socket' and 'statusMessage'
If you want to allow passing no arguments to the Class initiator, you have to define the initiator with default values set to None
(or whatever is appropriate).
For example,
def __init__(self, client_socket=None, statusMessage=""):
self.client_socket = client_socket
self.statusMessage = statusMessage
Now you can call your class instantiation without passing initialization parameters.
client = SimpleClient()
class SimpleClient:
def __init__(self, client_socket, statusMessage):
Your class taking two arguments, but when you call it;
client = SimpleClient()
You didn't write any arguments. So you have to put 2 arguments they may be None
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With