Wednesday, 29 July 2015

PR(03): Socket Programming using python



Client.py

#!/use/bin/python

import socket

s = socket.socket()

host = socket.gethostname()

port = 12352

s.connect((host, port))

print "Enter the file name: "

name = raw_input()

s.send(name)

print "The contents of file ", name , "are: "
print s.recv(65536)
s.close
**************************************************************************************

  Server.py


#!/usr/bin/python

# Server Program: server.py

import socket  # import socket module
import os

s=socket.socket() # Create a socket object
host = socket.gethostname()   # Get local machine name
port = 12352      # serve port for yout service
s.bind((host, port))    # Bind to the port

s.listen(10)      # Wair for client connection

while True:
      c, addr = s.accept()    # Establish connection with client
      print 'Got connection from ', addr
      name = c.recv(100)      # Receive filename from client
      print name, 'File requested by client'
      file = open(name, "r")  # Open file requested by client
     
      while True:
            chunk = file.read(65536)      # Read file contents
            if not chunk:
                  break             # EOF
            c.sendall(chunk)  # Send file contents to client

c.close()

Monday, 27 July 2015

PR(02) Process Communication using Pipe



#!/usr/bin/python

import os, sys

print "The child will write text to a pipe and "
print "the parent will read the text written by child..."

# file descriptors r, w for reading and writing
r, w = os.pipe()

processid = os.fork()
if processid:
    # This is the parent process
    # Closes file descriptor w
    os.close(w)
    r = os.fdopen(r)
    print "Parent Process is reading..."
    str = r.read()
    str=str[::-1]
    print "Text read by Parent Process :", str  
    sys.exit(0)
else:
    # This is the child process
    os.close(r)
    w = os.fdopen(w, 'w')
    print "Child Process is writing"
    w.write("Mahesh")
    w.close()
    print "Child Process is closing"
    sys.exit(0)