First commit

This commit is contained in:
Lucas Schumacher 2024-05-05 23:30:08 -04:00
commit 9fc4620088
4 changed files with 116 additions and 0 deletions

47
pychat0.py Normal file
View File

@ -0,0 +1,47 @@
from socket import *
from _thread import start_new_thread
VERSION = "PYCHAT_0.0"
PORT = 6783
s = socket(AF_INET, SOCK_DGRAM)
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind(('', PORT))
def recieveThread():
while True:
b, a = s.recvfrom(4096)
if len(b) < 1:
print(a)
break
print(b.decode("utf-8"))
name = ''
while name == '':
print("Enter username:", end="")
name = input()
if(len(name) > 20):
print("Error: username must be less than 20 characters")
name = None
name = name.lstrip()
name = name.rjust(19)
def sendThread():
while True:
#print(name + ' > ', end='')
msg = name + ' | ' + input()
s.sendto(msg.encode('utf-8'), ('255.255.255.255', PORT))
start_new_thread(recieveThread, ())
#start_new_thread(sendThread, ())
try:
sendThread()
except KeyboardInterrupt:
print("Closing socket")
s.close()
except EOFError:
print("Closing socket")
s.close()

23
server.py Normal file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env python3
import socket # Import socket module
import sys
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
try:
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print('Got connection from', addr)
c.send(b'Thank you for connecting\n')
c.close() # Close the connection
except KeyboardInterrupt:
s.close()
print("Exiting Server")
sys.exit()
finally:
s.close()

22
server2.py Normal file
View File

@ -0,0 +1,22 @@
import os
import socket
from multiprocessing import Process
def handle_client(cli: socket, addr):
# For now just print out the received bytes and close
print("Received connection from", addr)
recv_data = cli.recv(4096)
print(recv_data.decode("utf-8"))
cli.close()
if __name__ == '__main__':
address = ''
port = 8080
so = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
so.bind((address, port))
so.listen(5)
while True:
(client_socket, client_address) = so.accept()
print("Client connected")
Process(target=handle_client, args=(client_socket, client_address)).start()

24
teapotd.py Normal file
View File

@ -0,0 +1,24 @@
#!/usr/bin/env python3
import socket # Import socket module
import sys
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 8080 # Reserve a port for your service.
try:
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print('Got connection from', addr)
print(c.recv(1024))
c.send(b"HTTP/1.0 418 I'm a Teapot\r\nConnection: close\r\nServer: Teapot\r\n\r\nError 418 I'm a teapot")
c.close() # Close the connection
except KeyboardInterrupt:
s.close()
print("Exiting Server")
sys.exit()
finally:
s.close()