123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- # THIS FILE IS A PART OF VCStudio
- # PYTHON 3
- ###############################################################################
- # With the Multiuser system. It became clear early on that simply using the UDP
- # protocol would not be cool. Because it's just not checking enough things.
- # In my point of view. I want to send to the end network all the data directly
- # and not care too much about what format it is in and stuff.
- # So this file will insure that the data will be transferred what ever it is
- # just as is. The hard part will be here.
- ###############################################################################
- import json
- def send(c, message):
-
- # This function will do the sending of the message. I will treat every
- # message as if it's a file. And will write everything into a json format
- # for transferring. Unless it's already in binarry. In which case I will
- # keep it that way.
-
- # The mode will be either B ( bytes ) or J ( json ). All the rest will
- # handalled by the json madule hopefully.
-
- T = b"B"
- if type(message) != bytes:
- T = b"J"
- message = bytes(json.dumps(message), 'utf-8')
-
- # So now it's bytes anyway and it means we can send it over the network.
- # This will be done in 3 stages. TYPE ( T ), AMOUNT ( len(message) )
- # and the message it self. Always.
-
- # Now we we going to wait for a send message from the other side.
- m = c.recv(4)
- m = m.decode('utf8')
- while m != "SEND":
- print("DE-SYNCED! '"+m+"' NOT 'SEND'")
- c.sendall(b"N")
- m = c.recv(4)
- m = m.decode('utf8')
-
-
- c.sendall(T)
- c.recv(2)
- c.sendall(bytes(str(len(message)), 'utf-8'))
- c.recv(2)
- c.sendall(message)
- c.recv(2)
-
- def recv(c):
-
- # This function will do the recieving of the message.
-
- # I guess in order to fix most of the problems with this recv function
- # which is a little unsynsing here and there. I will make a fail switch
- # so it wil alight it self properly even it network if hidby, bibdy or
- # any of my server or client code is terribly unrelible.
-
- c.sendall(b"SEND")
-
- # It might fail or it might work
-
- T = c.recv(1)
- T = T.decode('utf8')
- tr = 0
- while T not in ["B", "J"]:
- print("DE-SYNCED! '"+T+"' NOT 'J' OR 'B'")
- c.sendall(b"SEND")
- T = c.recv(1)
- T = T.decode('utf8')
- tr = tr + 1
- if tr == 8:
- exit()
-
- c.sendall(b"OK")
-
- # So here we just recieved the T , Type of our message
-
- SIZE = c.recv(1024)
- SIZE = int(SIZE.decode('utf8'))
-
- # Now we recieved our amount. Next is to recieve the message
- c.sendall(b"OK")
-
- message = b""
- cs = 0
-
- while SIZE > cs:
- l = c.recv(SIZE)
- cs = cs + len(l)
- message = message + l
-
- c.sendall(b"OK")
-
- message[SIZE:]
-
- # Now let's ge the data back from JSON id it's a JSON.
- if T == "J":
- message = json.loads(message.decode('utf8'))
-
- return message
-
- # P for Pain
-
- # Can't afford to feel the joy
- # Can't find strength to feel the pain
- # I'll shrink and go and feel no more
- # Is it fine to be lame?
- # I don't want death. Since death
- # Has an opposite effect
- # From suffering from being lame
- # Death is opposite of pain
- # An importance of the pain
- # Is that joy is just a drug
- # Such as suffering and pain
- # It's a head confusing bug
- # Joyful, satisfying shit
- # make you feel comfortable
- # But discomfort and the pain
- # It's what is affordable
- # Lameness feel pathetic shit
- # Me described using four words
- # No more joy, only regrets
- # Five more words of discomfort
- # Shrink from big and fall from tall
- # Give up everything you have
- # Go homeless, starve, and suffer. Feel.
- # The pain inducing hollow and venomous discomfort,
- # swallowing all and every thought and only
- # pain. Pain. And nothing more exists.
- # And nothing more is fair.
- # Can't afford to feel the joy
- # But find strength to feel the pain
- # I'll shrink and go and feel no more
- # It is fine to be lame.
- # https://open.lbry.com/@blenderdumbass:f/P-for-Pain:f?r=GRS5mK5GDEGa77vRotG4LwMqPCyhpF2k
|