Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- listeningPortNumber = 8081
- #------------
- def send_text( sending_socket, text ):
- text = text + "\n"
- data = text.encode()
- sending_socket.send(data)
- #-----------
- def get_text( receiving_socket ):
- buffer = ""
- socket_open = True
- while socket_open:
- # read any data from the socket
- data = receiving_socket.recv(1024)
- # if no data is returned the socket must be closed
- if not data:
- socket_open = False
- # add the data to the buffer
- buffer = buffer + data.decode()
- # is there a terminator in the buffer
- terminator_pos = buffer.find("\n")
- # if the value is greater than -1, a \n must exist
- while terminator_pos > -1:
- # get the message from the buffer
- message = buffer[:terminator_pos]
- # remove the message from the buffer
- buffer = buffer[terminator_pos + 1:]
- # yield the message (see below)
- yield message
- # is there another terminator in the buffer
- terminator_pos = buffer.find("\n")
- #----------------------
- print('')
- print('Welcome to the Chat program')
- print('***************************')
- print('Chat program can run as a server or a client.')
- print('.. a chat Server must be running before any client !')
- chatType = input('Enter "c" for Client mode .. else default is a Server ..\n=> ')
- if chatType != "c": # not 'c' so launch Server
- server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- server_socket.bind(("0.0.0.0", listeningPortNumber))
- server_socket.listen()
- print("SERVER: waiting for connection")
- connection_socket, address = server_socket.accept()
- print("SERVER: client connected")
- else: # 'c' so launch Client
- #------------------------------
- # CLIENT: connect to TCP Server
- ipAddress = input('Please enter IP address of server ..\n=> ')
- connection_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- #connection_socket.connect(("127.0.0.1", listeningPortNumber))
- connection_socket.connect((ipAddress, listeningPortNumber))
- print("CLIENT: Connected to server")
- message = "Thanks for connecting me mate"
- send_text( connection_socket, message )
- #-------------------------------------------
- # OK, got a connection_socket
- while True:
- # receive msg ..
- message = next( get_text( connection_socket ))
- #message = get_text( connection_socket )
- print(message)
- message = input('Please enter chat text ..\n=> ')
- send_text( connection_socket, message )
- print('Waiting for next chat message from network ..')
- connection_socket.close()
- #server_socket.close()
- print('SERVER: sockets CLOSED !')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement