SlideShare a Scribd company logo
Functionality You are to create an enhanced chat system. In particular, you will create a chat
client and a chat server that are capable of transmitting messages as well as transferring files. In
particular, the system will perform as follows: 1. The server will listen for connections from
clients. 2. Once a client is connected, it can send messages, at will, to the server. It will also
receive from the server all messages sent by the other connected clients. 3. The user will provide
messages to the client using standard input. 4. NOTE: The first message sent by the client must
be the name of the user, in order for the server to forward the name of the user who has sent a
message. Additionally, the user name will be used to identify the user who owns a file that may
be requested by another user. 5. Immediately after receiving a message, the server must forward
the message and the name of the user who sent the message to all connected clients, except for
the client that sent the message. DO NOT SEND THE MESSAGE BACK TO THE
ORIGINATING CLIENT! 6. The format of the combined name and message includes a colon,
followed by a single space, immediately after the name of the sender; the message follows.
Hence, the format can be represented as follows: 7. Once it receives a message, which now
includes the name of the sender, the client will write the message to standard output. 8. The
client must write each message on its own line of output. 9. In addition to transmitting and
receiving messages, the client and server will also transfer files using a binary transfer method,
meaning that all of the bytes of a file will be transmitted exactly as is. 10. Because the client
must also transfer files, it will monitor file transfer requests. Although the client could use the
same socket connection for transferring files, the user of the client that is sending a file might
interfere with the transfer process by sending a text message during the transfer. Therefore, you
are strongly encouraged to create a separate socket connection for transferring files. 11. In order
to initiate a file transfer request, the client must send the name of the file and the name of the
user who owns a copy of the file to the server. A user may request a file at any time, and the
name of the file and the owning user must be supplied by the requesting user through standard
input. 12. When the server receives a file transfer request, it must immediately initiate a file
transfer process. The server may set up a relay between the clients involved, i.e., the requesting
client and the supplying client, or it may set up a peer-to-peer connection between the requesting
client and the supplying client. In either case, all of the bytes in the file must be transmitted as is.
If the file cannot be found or read, the client that is supposed to supply the file may simply
ignore the request but it may not terminate. Whether requesting or supplying a file, the client
must continue to send and receive messages, as well as be able to request additional files and
respond to additional file requests. 13. When the requesting client receives the file bytes, it must
store them in a file with the same name in the local directory. 14. When a client closes its socket,
the server will remove that client from its list, but the server will continue to run and the other
connected clients will be able to continue exchanging messages and files. Additionally, new
clients will be able to connect and exchange messages and files. 15. Because the client program
will be menu-driven, the user will terminate the client by using standard input to select an
appropriate option. - As explained above, the user will interact with the client through standard
input. In order to facilitate interaction, as well as for evaluation, the client must conform to the
following input standards: 1. The client must display a menu of options for the user to choose
from. Each option is associated with a single letter, as shown. The options are: - Send a message
( m ) - Request a file (f) - Exit the client (and disconnect from the server) (x) 2. The user may
enter an option using a lower-case letter. 3. In order to send a message, the user chooses the
message option by typing the ' m ' character and pressing the Enter key. The user then types the
message. After the user enters the message, the client redisplays the menu for the next user
action. 4. In order to request a file, the user chooses the option to request a file, ' f '. The client
must then prompt the user to enter first the name of the user who owns the file and second the
name of the file. You may assume that a particular user connected to the chat server owns a
particular file, although you are responsible for setting up an appropriate test to verify that your
file transfer functionality works correctly. After the user enters the file request information, the
client redisplays the menu for the next user action while the file transfer request is processed in
another thread. Hence, the user must be able to continue sending messages and requesting other
files while prior file requests are being processed. 5. The client will shutdown any connections
and terminate as soon as the user enters the ' x ' ovtion. Enter an option ('m', ' f ', ' x '): (M)essage
(send) (F)ile (request) e(X)it m Enter your message: hello! Enter an option ('m', ' f ', ' x '):
(M)essage (send) (F)ile (request) e(X)it f Who owns the file? client1 Which file do you want?
Ameca_splendens.jpg Enter an option ('m', ' f ', ' x '): (M)essage (send) (F)ile (request) e(X)it m
Enter your message: another important message! Enter an option ('m', f ', x '): (M)essage (send)
(F)ile (request) The server will simply be given the listening port number on the command line
(without the '-' character), as follows: - Python: $> python ChatServer.py - Java: Assuming that
the client uses a separate socket for file transfers, the port number on which the client will listen
for file requests is also provided on the command line, along with the port number of the chat
server. The port number that the client will listen on is designated with an 1 option, while -
ppecifies the port number of the chat server:

More Related Content

Similar to Functionality You are to create an enhanced chat system- In particular.pdf

Group20 Dynamic Networks
Group20 Dynamic NetworksGroup20 Dynamic Networks
Group20 Dynamic Networks
hariprasadnr
 
How a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdfHow a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdf
arccreation001
 
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
KrishnaShah908060
 
Through-Mail Feature: An Enhancement to Contemporary Email Services
Through-Mail Feature: An Enhancement to Contemporary Email ServicesThrough-Mail Feature: An Enhancement to Contemporary Email Services
Through-Mail Feature: An Enhancement to Contemporary Email Services
IRJESJOURNAL
 

Similar to Functionality You are to create an enhanced chat system- In particular.pdf (20)

Http
HttpHttp
Http
 
Networking presentation
Networking presentationNetworking presentation
Networking presentation
 
Group20 Dynamic Networks
Group20 Dynamic NetworksGroup20 Dynamic Networks
Group20 Dynamic Networks
 
http presentation 1.pptx
http presentation 1.pptxhttp presentation 1.pptx
http presentation 1.pptx
 
How a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdfHow a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdf
 
Chapter3
Chapter3Chapter3
Chapter3
 
Www and http
Www and httpWww and http
Www and http
 
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
3150710_CN_GTU_Study_Material_Presentations_Unit-2_13082021073829PM.pdf
 
E mail protocol - SMTP
E mail protocol - SMTPE mail protocol - SMTP
E mail protocol - SMTP
 
Cn u5
Cn u5Cn u5
Cn u5
 
Chat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIPChat app case study - xmpp vs SIP
Chat app case study - xmpp vs SIP
 
Ch2 the application layer protocols_http_3
Ch2 the application layer protocols_http_3Ch2 the application layer protocols_http_3
Ch2 the application layer protocols_http_3
 
Working of Email_services
Working of Email_services Working of Email_services
Working of Email_services
 
Through-Mail Feature: An Enhancement to Contemporary Email Services
Through-Mail Feature: An Enhancement to Contemporary Email ServicesThrough-Mail Feature: An Enhancement to Contemporary Email Services
Through-Mail Feature: An Enhancement to Contemporary Email Services
 
Email
EmailEmail
Email
 
Unit-5_Application_QoS.pdfcomputer network
Unit-5_Application_QoS.pdfcomputer networkUnit-5_Application_QoS.pdfcomputer network
Unit-5_Application_QoS.pdfcomputer network
 
Pop (post office protocol)e mail (electronic mail)
Pop (post office protocol)e mail (electronic mail)Pop (post office protocol)e mail (electronic mail)
Pop (post office protocol)e mail (electronic mail)
 
Chat server
Chat server Chat server
Chat server
 
Week3 lec3-bscs1
Week3 lec3-bscs1Week3 lec3-bscs1
Week3 lec3-bscs1
 
Lecture 9 electronic_mail_representation_and_transfer
Lecture 9 electronic_mail_representation_and_transferLecture 9 electronic_mail_representation_and_transfer
Lecture 9 electronic_mail_representation_and_transfer
 

More from NicholasflqStewartl

Having a problem figuring out where my errors are- The code is not run.pdf
Having a problem figuring out where my errors are- The code is not run.pdfHaving a problem figuring out where my errors are- The code is not run.pdf
Having a problem figuring out where my errors are- The code is not run.pdf
NicholasflqStewartl
 
Given the following errors and class in Java- How are these errors fix.pdf
Given the following errors and class in Java- How are these errors fix.pdfGiven the following errors and class in Java- How are these errors fix.pdf
Given the following errors and class in Java- How are these errors fix.pdf
NicholasflqStewartl
 
Given the following class in Java- public class ThreeTenDynArray-T- {.pdf
Given the following class in Java-  public class ThreeTenDynArray-T- {.pdfGiven the following class in Java-  public class ThreeTenDynArray-T- {.pdf
Given the following class in Java- public class ThreeTenDynArray-T- {.pdf
NicholasflqStewartl
 
Given an IntNode struct and the operating functions for a linked list-.pdf
Given an IntNode struct and the operating functions for a linked list-.pdfGiven an IntNode struct and the operating functions for a linked list-.pdf
Given an IntNode struct and the operating functions for a linked list-.pdf
NicholasflqStewartl
 

More from NicholasflqStewartl (20)

he amount of income taxesThe amount of income taxes A- the corporation.pdf
he amount of income taxesThe amount of income taxes A- the corporation.pdfhe amount of income taxesThe amount of income taxes A- the corporation.pdf
he amount of income taxesThe amount of income taxes A- the corporation.pdf
 
Having a hard time with this one- Fill in the blanks with the follow.pdf
Having a hard time with this one-   Fill in the blanks with the follow.pdfHaving a hard time with this one-   Fill in the blanks with the follow.pdf
Having a hard time with this one- Fill in the blanks with the follow.pdf
 
Having a problem figuring out where my errors are- The code is not run.pdf
Having a problem figuring out where my errors are- The code is not run.pdfHaving a problem figuring out where my errors are- The code is not run.pdf
Having a problem figuring out where my errors are- The code is not run.pdf
 
Harriet- Herm- and Ronde formed an S corporation called Innovet- Harri.pdf
Harriet- Herm- and Ronde formed an S corporation called Innovet- Harri.pdfHarriet- Herm- and Ronde formed an S corporation called Innovet- Harri.pdf
Harriet- Herm- and Ronde formed an S corporation called Innovet- Harri.pdf
 
Hardworking Americans Should Not Be Living in Poverty has fallen to $6.pdf
Hardworking Americans Should Not Be Living in Poverty has fallen to $6.pdfHardworking Americans Should Not Be Living in Poverty has fallen to $6.pdf
Hardworking Americans Should Not Be Living in Poverty has fallen to $6.pdf
 
Government and Not for profit accounting 2022 CAFR (City of Anaheim) S.pdf
Government and Not for profit accounting 2022 CAFR (City of Anaheim) S.pdfGovernment and Not for profit accounting 2022 CAFR (City of Anaheim) S.pdf
Government and Not for profit accounting 2022 CAFR (City of Anaheim) S.pdf
 
Hammond Manufacturing Inc- was legally incorporated on January 2- 2020.pdf
Hammond Manufacturing Inc- was legally incorporated on January 2- 2020.pdfHammond Manufacturing Inc- was legally incorporated on January 2- 2020.pdf
Hammond Manufacturing Inc- was legally incorporated on January 2- 2020.pdf
 
Hacer un programa en c++ que lea la frase y determine que caracteres s.pdf
Hacer un programa en c++ que lea la frase y determine que caracteres s.pdfHacer un programa en c++ que lea la frase y determine que caracteres s.pdf
Hacer un programa en c++ que lea la frase y determine que caracteres s.pdf
 
Given the regular expression- 0(01)0 (a) Construct and -NFA and draw i.pdf
Given the regular expression- 0(01)0 (a) Construct and -NFA and draw i.pdfGiven the regular expression- 0(01)0 (a) Construct and -NFA and draw i.pdf
Given the regular expression- 0(01)0 (a) Construct and -NFA and draw i.pdf
 
Grouper Corporation is authorized to issue both preferred and commonst.pdf
Grouper Corporation is authorized to issue both preferred and commonst.pdfGrouper Corporation is authorized to issue both preferred and commonst.pdf
Grouper Corporation is authorized to issue both preferred and commonst.pdf
 
Guessing or knowing the initial TCP sequence number (ISN) that a serve.pdf
Guessing or knowing the initial TCP sequence number (ISN) that a serve.pdfGuessing or knowing the initial TCP sequence number (ISN) that a serve.pdf
Guessing or knowing the initial TCP sequence number (ISN) that a serve.pdf
 
Given the following XML fragment- what XPath expression would select a.pdf
Given the following XML fragment- what XPath expression would select a.pdfGiven the following XML fragment- what XPath expression would select a.pdf
Given the following XML fragment- what XPath expression would select a.pdf
 
Greener Pastures Corporation borrowed $1-100-000 on November 1- 2021-.pdf
Greener Pastures Corporation borrowed $1-100-000 on November 1- 2021-.pdfGreener Pastures Corporation borrowed $1-100-000 on November 1- 2021-.pdf
Greener Pastures Corporation borrowed $1-100-000 on November 1- 2021-.pdf
 
Given the following for the Titan Company- the company began operation.pdf
Given the following for the Titan Company- the company began operation.pdfGiven the following for the Titan Company- the company began operation.pdf
Given the following for the Titan Company- the company began operation.pdf
 
Given the following errors and class in Java- How are these errors fix.pdf
Given the following errors and class in Java- How are these errors fix.pdfGiven the following errors and class in Java- How are these errors fix.pdf
Given the following errors and class in Java- How are these errors fix.pdf
 
Given the following class in Java- public class ThreeTenDynArray-T- {.pdf
Given the following class in Java-  public class ThreeTenDynArray-T- {.pdfGiven the following class in Java-  public class ThreeTenDynArray-T- {.pdf
Given the following class in Java- public class ThreeTenDynArray-T- {.pdf
 
Given Information #1- Period 1 is when Devah is working and earning mo.pdf
Given Information #1- Period 1 is when Devah is working and earning mo.pdfGiven Information #1- Period 1 is when Devah is working and earning mo.pdf
Given Information #1- Period 1 is when Devah is working and earning mo.pdf
 
Give concise and substantial answers by relating your answers to your.pdf
Give concise and substantial answers by relating your answers to your.pdfGive concise and substantial answers by relating your answers to your.pdf
Give concise and substantial answers by relating your answers to your.pdf
 
Given a stream of strings- remove all empty strings- import java-uti.pdf
Given a stream of strings- remove all empty strings-   import java-uti.pdfGiven a stream of strings- remove all empty strings-   import java-uti.pdf
Given a stream of strings- remove all empty strings- import java-uti.pdf
 
Given an IntNode struct and the operating functions for a linked list-.pdf
Given an IntNode struct and the operating functions for a linked list-.pdfGiven an IntNode struct and the operating functions for a linked list-.pdf
Given an IntNode struct and the operating functions for a linked list-.pdf
 

Recently uploaded

Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 

Recently uploaded (20)

Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptxSolid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
Solid waste management & Types of Basic civil Engineering notes by DJ Sir.pptx
 
PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Salient features of Environment protection Act 1986.pptx
Salient features of Environment protection Act 1986.pptxSalient features of Environment protection Act 1986.pptx
Salient features of Environment protection Act 1986.pptx
 
NLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptxNLC-2024-Orientation-for-RO-SDO (1).pptx
NLC-2024-Orientation-for-RO-SDO (1).pptx
 
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
50 ĐỀ LUYỆN THI IOE LỚP 9 - NĂM HỌC 2022-2023 (CÓ LINK HÌNH, FILE AUDIO VÀ ĐÁ...
 
The Benefits and Challenges of Open Educational Resources
The Benefits and Challenges of Open Educational ResourcesThe Benefits and Challenges of Open Educational Resources
The Benefits and Challenges of Open Educational Resources
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdfDanh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
Danh sách HSG Bộ môn cấp trường - Cấp THPT.pdf
 
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxStudents, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptx
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
NCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdfNCERT Solutions Power Sharing Class 10 Notes pdf
NCERT Solutions Power Sharing Class 10 Notes pdf
 
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
Operations Management - Book1.p  - Dr. Abdulfatah A. SalemOperations Management - Book1.p  - Dr. Abdulfatah A. Salem
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
 
Basic_QTL_Marker-assisted_Selection_Sourabh.ppt
Basic_QTL_Marker-assisted_Selection_Sourabh.pptBasic_QTL_Marker-assisted_Selection_Sourabh.ppt
Basic_QTL_Marker-assisted_Selection_Sourabh.ppt
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
UNIT – IV_PCI Complaints: Complaints and evaluation of complaints, Handling o...
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
 
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & EngineeringBasic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
Basic Civil Engg Notes_Chapter-6_Environment Pollution & Engineering
 

Functionality You are to create an enhanced chat system- In particular.pdf

  • 1. Functionality You are to create an enhanced chat system. In particular, you will create a chat client and a chat server that are capable of transmitting messages as well as transferring files. In particular, the system will perform as follows: 1. The server will listen for connections from clients. 2. Once a client is connected, it can send messages, at will, to the server. It will also receive from the server all messages sent by the other connected clients. 3. The user will provide messages to the client using standard input. 4. NOTE: The first message sent by the client must be the name of the user, in order for the server to forward the name of the user who has sent a message. Additionally, the user name will be used to identify the user who owns a file that may be requested by another user. 5. Immediately after receiving a message, the server must forward the message and the name of the user who sent the message to all connected clients, except for the client that sent the message. DO NOT SEND THE MESSAGE BACK TO THE ORIGINATING CLIENT! 6. The format of the combined name and message includes a colon, followed by a single space, immediately after the name of the sender; the message follows. Hence, the format can be represented as follows: 7. Once it receives a message, which now includes the name of the sender, the client will write the message to standard output. 8. The client must write each message on its own line of output. 9. In addition to transmitting and receiving messages, the client and server will also transfer files using a binary transfer method, meaning that all of the bytes of a file will be transmitted exactly as is. 10. Because the client must also transfer files, it will monitor file transfer requests. Although the client could use the same socket connection for transferring files, the user of the client that is sending a file might interfere with the transfer process by sending a text message during the transfer. Therefore, you are strongly encouraged to create a separate socket connection for transferring files. 11. In order to initiate a file transfer request, the client must send the name of the file and the name of the user who owns a copy of the file to the server. A user may request a file at any time, and the name of the file and the owning user must be supplied by the requesting user through standard input. 12. When the server receives a file transfer request, it must immediately initiate a file transfer process. The server may set up a relay between the clients involved, i.e., the requesting client and the supplying client, or it may set up a peer-to-peer connection between the requesting client and the supplying client. In either case, all of the bytes in the file must be transmitted as is. If the file cannot be found or read, the client that is supposed to supply the file may simply ignore the request but it may not terminate. Whether requesting or supplying a file, the client must continue to send and receive messages, as well as be able to request additional files and respond to additional file requests. 13. When the requesting client receives the file bytes, it must store them in a file with the same name in the local directory. 14. When a client closes its socket, the server will remove that client from its list, but the server will continue to run and the other connected clients will be able to continue exchanging messages and files. Additionally, new clients will be able to connect and exchange messages and files. 15. Because the client program will be menu-driven, the user will terminate the client by using standard input to select an appropriate option. - As explained above, the user will interact with the client through standard input. In order to facilitate interaction, as well as for evaluation, the client must conform to the following input standards: 1. The client must display a menu of options for the user to choose from. Each option is associated with a single letter, as shown. The options are: - Send a message ( m ) - Request a file (f) - Exit the client (and disconnect from the server) (x) 2. The user may enter an option using a lower-case letter. 3. In order to send a message, the user chooses the message option by typing the ' m ' character and pressing the Enter key. The user then types the message. After the user enters the message, the client redisplays the menu for the next user
  • 2. action. 4. In order to request a file, the user chooses the option to request a file, ' f '. The client must then prompt the user to enter first the name of the user who owns the file and second the name of the file. You may assume that a particular user connected to the chat server owns a particular file, although you are responsible for setting up an appropriate test to verify that your file transfer functionality works correctly. After the user enters the file request information, the client redisplays the menu for the next user action while the file transfer request is processed in another thread. Hence, the user must be able to continue sending messages and requesting other files while prior file requests are being processed. 5. The client will shutdown any connections and terminate as soon as the user enters the ' x ' ovtion. Enter an option ('m', ' f ', ' x '): (M)essage (send) (F)ile (request) e(X)it m Enter your message: hello! Enter an option ('m', ' f ', ' x '): (M)essage (send) (F)ile (request) e(X)it f Who owns the file? client1 Which file do you want? Ameca_splendens.jpg Enter an option ('m', ' f ', ' x '): (M)essage (send) (F)ile (request) e(X)it m Enter your message: another important message! Enter an option ('m', f ', x '): (M)essage (send) (F)ile (request) The server will simply be given the listening port number on the command line (without the '-' character), as follows: - Python: $> python ChatServer.py - Java: Assuming that the client uses a separate socket for file transfers, the port number on which the client will listen for file requests is also provided on the command line, along with the port number of the chat server. The port number that the client will listen on is designated with an 1 option, while - ppecifies the port number of the chat server: