logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

In this assignment, you will implement a simple networked simulation of plane flights and you will usethreadsand communicateviaIPv4 TCP networking

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Integrity

This is an individual assignment. You should feel free to discuss aspects of C programming and the assignment specification with fellow students. You should not actively help  (or seek help from)  other students with the actual coding of your assignment solution. It is cheating to look at another student’s code and it is cheating to allow your code to be seen or shared in printed or electronic form.  You should note that all submitted code may be subject to automated checks for plagiarism and collusion. If we detect plagiarism or collusion, formal misconduct proceedings will be initiated against you. A likely penalty for  a  first offense would be a mark of 0 for the assignment. Don’t risk it! If you’re having trouble, seek help from a member of the teaching staff. Don’t be tempted to copy another student’s code.

Do not commit any code to your repository unless it is your own work or it was given to you by teaching staff.  If you have questions about this, please ask.

While you are permitted to use sample code supplied by teaching staff this year in this course.  Code supplied for other courses  or other offerings of this course is off-limits — it may be deemed to be without academic merit and removed from your program before testing.

 Purpose

In this assignment, you will implement a simple networked simulation of plane flights. A complete assignment will consist of three C99 programs:

  • roc2310: Simulates an aircraft

  • control2310: Simulates an airport

  • mapper2310: Maps airport names to ports

Multiple instances of these programs will be executed to carry out the simulation.

You   will use   threads   and communicate   via   IPv4   TCP   networking.   Your implementation must use  blocking  communications.  You  are  not permitted to use pipes or any alternative means of interprocess commmunication. To  complete all of the features of this assignment you    will need to use pthreads, you are not to call fork() nor attempt to use any   form   of   nonblocking   I/O   or   I/O   multiplexing.

Your assignment submission must comply with the C style guide

(version 2.0.4) available on the course blackboard area. It must also not  use banned functions or commands listed in the same place.

Programs

These programs make use of IDs and other  text  (info).  No  text  or IDs are allowed to contain any of the following characters:

4387028-29492-3486259

  • 'n' • 'r' • ':'

Note, they may contain spaces.

All outputs from programs should be newline terminated.

mapper2310

This program takes no command line parameters. When it starts up, it will 1. listen on an ephemeral port,

  1. print that port to stdout.

  2. act on any commands it receives via connection to the port  (the  other end of the connection will close it when it has no more commands).

Some marks are available for handling connections  one at  a  time. To get all marks related to the mapper, it will need to be able to process requests in parallel.

Command

Purpose

?ID

Send the port number for the

 

airport called ID

!ID:PORT

Add airport called ID with PORT

as the port number

@

Send back all names and their

corresponding ports

All output as a result of commands will be sent back via the connection that the command came from. • ?ID

– If there is an entry corresponding to that ID, send back

the port followed by a newline.  –  If  there  is  no  mapping,  send back a semi-colon followed by a newline.

 Mappings should be printed in lexicographic order (of ID)  with  newline at the end of  each  entry.  ID  and PORT  should be  separated  by a colon.

If any invalid commands are received,  silently discard that line and  keep reading. If ! is used for an ID which  already  has an  entry,  ignore that command.

Note: the mapper will run until killed.

Sample session

To mapper

From mapper

?To

;

!Tom:55451

 

!Albert:13021

 

@

Albert:13021

Tom:55451

?Albert

13021

!To:4444

 

@

Albert:13021 To:4444

Tom:55451

4387028-29492-34862592

 This program takes the following parameters:

  • AirportID

  • Airport info

  • mapper port (This is optional). When the  program  starts  up,  it  will:

  1. Listen on an ephemeral

  2. Print that port to stdout.

  3. If a mapper port is  given,  connect  to  the  mapper  and  register  the ID and port of this airport. It should  then  disconnect  from  the mapper.

  4. In parallel — wait for connections by planes and act on

When    a    connection    is    made    to    the    control’s    port,    one    of    two    things should happen:

  • If the text sent by the connecting party is “log”, then send back a  newline seprated list of all the rocs which have visited them (in lexicographic order). Following this, it  should  send  a  full-stop  followed by a newline and then close the

  • For any other text, the control should consider  the  text  as  the  plane’s ID and send back the control’s info (newline terminated).

Note:    Under    normal    circumstances    control2310 will run until killed. Exit conditions for control2310

Condition

Status

Message

Incorrect number of args

1

Usage: control2310 id info [mapper]

Invalid characters in ID or

info

2

Invalid char in parameter

Port        specified      but       not       a

strictly         positive      number        <

65535

3

Invalid port

Could not connect to mapper

4

Can not connect to map

roc2310

This program takes the following commandline parameters:

  1. planeID

  2. mapper port  (This   is   either   a   port   number   or   a   dash   (‘-’)).

  3. zero or more destinations (controls) to connect to in    These can either be port numbers or control IDs.

If all destinations are port numbers (> 0 and  < 65536),  the mapper  is  not required. If any of the destinations  are  not  port  numbers,  the  mapper should be contacted to find  the  ports  for  those  destinations. Once the roc knows the all the port numbers for  its  destinations,  it  should connect to each destination in turn, get the info  for  that  destination and add it (newline separated) to its log. If it is unable to connect to a destination (or the destination did not send back valid information), the roc should just move on to the next destination.

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

844 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

711 Answers

Hire Me
expert
Husnain SaeedComputer science

649 Answers

Hire Me
expert
Atharva PatilComputer science

909 Answers

Hire Me
March
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30