Download presentation
Presentation is loading. Please wait.
Published byBrett Tucker Modified over 9 years ago
1
1 CSC111H Client-Server: An Introduction Dennis Burford dburford@cs.uct.ac.za
2
2 Internet Communication Communication on the Internet is the transfer of data from one machine to another. –downloading of web pages –email –chat rooms. Transfer of this information is unreliable – it can get lost along the way. So, data to be transferred is broken into pieces called packets (Don’t put all your eggs in one basket!)
3
3 Internet Communication If a computer is expecting a packet, and it doesn’t arrive, it asks for just that packet to be re-sent (rather than the whole message). Also, a packet may be corrupted by noise on the network: We need a way of checking its contents (a checksum). A packet may pass through many other machines before it reaches its destination (like the many stops of an airmail letter).
4
4 Identifying a Machine Telling the packets where to go… Normal Mail is given a destination in the form of a postal address. Similarly, every machine on the Internet is uniquely identified by its IP (Internet Protocol) address.
5
5 Identifying a Machine IP addresses exist in 2 forms: –DNS (Domain Name Service) form, e.g. casper2.cs.uct.ac.za marsite.cs.uct.ac.za (my machine) scilab.uct.ac.za (the scilab server). –“Dotted Quad” form.Four numbers separated by dots, e.g. casper2-> 137.158.128.58 marsite-> 137.158.133.27 scilab-> 137.158.128.57 Use “ping” on DOS prompt
6
6 TCP and Sockets TCP/IP (Transmission Control Protocol/Internet Protocol): a reliable direct connection between 2 programs on different machines. A TCP connection between 2 programs is like a phone connection: –data can move reliably in both directions simultaneously –before communication can take place, a connection has to be made (one must call the other) –both parties need something besides the connection (a telephone: a device to hear and speak). In TCP connections, the “telephone” is called a socket.
7
7 TCP and Sockets A socket object is needed to allow programs to communicate across a connection In Java, there is an existing class called Socket, defined in java.net. The constructor takes 2 arguments: –an IP address (...of the machine being contacted) –a port number (...of the program we want to talk to)
8
8 Port Numbers Network programs offering a service can “listen” on a particular port number on a computer. The port identifies which service is involved. Some default port numbers: –FTP (data connection) 20 –telnet 23 –http (WWW protocol) 80 The combination of a port number and IP address identifies the program (like the number of a room in a building).
9
9 Client-Server The client-server model is a particular approach to communicating, used in Internet applications. In this model an application consists of 2 programs running: –One program runs as a server (providing a service). –The other program runs as a client (requesting the service). The client requests a service as follows: –Creates a Socket object, with the machine address and appropriate port number of the server –Sends a message to the server –Waits for a response from the server
10
10 Protocols Each client-server combination has its own rules on how the conversation should work - a protocol. A Protocol can be thought of as the rules of conduct and the format of the communication. Real world example: –Ordering a McDonald’s meal (in English)
11
11 Protocols Web clients and servers –Protocol called HTTP (Hyper-Text Transport Protocol). A client program (such as Internet Explorer) requests an html file from a web server (such as Apache). The command is GET A blank line indicates the end of the request. The server then sends information about the server and the file (such as when it was last modified), followed by a blank line. The server then sends the HTML code to the client, which displays it. The server breaks the connection when it has sent all the HTML. Email clients and servers –Protocol called SMTP (Simple Mail Transfer Protocol).
12
12 Chat Program Fred -: Sally -: John -: Chat Server Client
13
13 Chat Program Fred -: Sally -: John -: Chat Server connect
14
14 Chat Program Fred -: Sally -: John -: Chat Server
15
15 Chat Program Fred -: Hello everyone Sally -: John -: Chat Server
16
16 Chat Program Fred -: Hello everyone Sally -: John -: Chat Server
17
17 Chat Program Fred -: Hello everyone Sally -: John -: Chat Server
18
18 Chat Program Fred -: Hello everyone Fred> Hello everyone Sally -: John -: Chat Server
19
19 Chat Program Fred -: Fred> Hello everyone Sally -: John -: Chat Server
20
20 Understanding the Files for the Project Most of the java files which you have been given are interfaces. For example: The ChatProgram interface has one method specified, called acceptMessage. Your program will implement ChatProgram, because it has to be able to accept messages from the server. public interface ChatProgram { public boolean acceptMessage(String msg); }
21
21 The ChatServer The server part of the program has been written for you (ChatServer.java). ChatServer implements ChatServerInterface. This means that it has methods called login, logout and putMessage. To connect to the server, we use the ConnectionToServer class, which implements ChatClientInterface. You are required to write the client-side of the chat program.
22
22 ChatServer Interface public interface ChatServerInterface extends java.rmi.Remote { boolean login(String id, ChatClientInterface client) throws java.rmi.RemoteException; boolean logout(ChatClientInterface client) throws java.rmi.RemoteException; boolean putMessage(String msg, ChatClientInterface client) throws java.rmi.RemoteException; }
23
23 ChatClientInterface public interface ChatClientInterface extends java.rmi.Remote { boolean putBroadCastMessage(String msg) throws java.rmi.RemoteException; public void addPerson(String msg) throws java.rmi.RemoteException; public void removePerson(String msg) throws java.rmi.RemoteException; }
24
24 The Client-Side The client which you write must react to 2 events. Both use a ConnectionToServer object. How to create a ConnectionToServer object: –The constructor takes 3 parameters: hostName (IP number of computer you want to connect to) nickName (name to be used for chatting) program (an instance of ChatProgram which you have written). From the server to the client: The ConnectionToServer object ensures that acceptMessage of ChatProgram is called whenever something arrives at the server From the client to the server: –Invoke the sendMessage method of ConnectionToServer
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.