Server (awaits connection, echoes request, and exits):

import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', 12345)) # designate socket to receive
serversocket.listen(5) # max 5 connections

while True:
  connection, address = serversocket.accept()
  buf = connection.recv(64)
  if len(buf) > 0:
    print(buf.decode()) # python 3 fix
    break     
   

Client (sends a message to the server):

import socket

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 12345)) # designate socket to send
clientsocket.send(('Hello, World!').encode()) # python 3 fix