Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCMKhoa Khoa Học và Kỹ Thuật Máy TínhTrang 2KHÁI NIỆM VỀ SOCKETSocket API–Ðược giới thiệu ở BSD4.1 UNIX, 1981–Ðược ứng dụng khởi tạo, sử dụng và hủy bỏ.–Dùng cơ chế clientserver–Cung cấp hai dịch vụ chuyển dữ liệu thông qua socket API:• unreliable datagram• reliable, byte streamoriented “nội dung được trích dẫn từ 123doc.vn cộng đồng mua bán chia sẻ tài liệu hàng đầu Việt Nam”
Khoa Hc v K Thut Mỏy Tớnh Trang 1 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Bi Ging 2 LP TRèNH MNG DNG SOCKET Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 2 KHI NIM V SOCKET Socket API éc gii thiu BSD4.1 UNIX, 1981 éc ng dng khi to, s dng v hy b. Dựng c ch client/server Cung cp hai dch v chuyn d liu thụng qua socket API: unreliable datagram reliable, byte stream-oriented Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 3 KHI NIM V SOCKET Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 4 THIT K GII THUT CLIENT/SERVER Thi t k gi i thu t cho client Gii thut cho chng trỡnh client dựng UDP Xỏc nh a ch server. To socket. Gi/nhn d liu theo giao thc lp ng dng ó thit k. úng socket. Gii thut cho chng trỡnh client dựng TCP Xỏc nh a ch server To socket. Kt ni n server. Gi/nhn d liu theo giao thc lp ng dng ó thit k. úng kt ni. Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 5 THIT K GII THUT CLIENT/SERVER Thit k gii thut cho Server Chng trỡnh server cú hai loi: L p(iterative) ng th i (concurrent). Hai dng giao thc chng trỡnh server: Connection-oriented Connectionless. Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 6 THIT K GII THUT CLIENT/SERVER Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 7 THIT K GII THUT CLIENT/SERVER Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 8 THIT K GII THUT CLIENT/SERVER Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 9 THIT K GII THUT CLIENT/SERVER Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 10 THIT K GII THUT CLIENT/SERVER [...]... MNG TRấN JAVA Kt ni ờn 1 s webserver import java. net.*; import java. io.*; public class getSocketInfo { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { try { Socket theSocket = new Socket( args[i], 80); System.out.println("Connected to " + theSocket.getInetAddress() + " on port " + theSocket.getPort() + " from port " + theSocket.getLocalPort() + " of " + theSocket.getLocalAddress());... TRấN JAVA ServerSocket class Class mụ t v ServerSocket To mt ServerSocket ServerSocket(int port) throws IOException ServerSocket(int port, int backlog) throws IOException ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 22 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA ServerSocket class Cỏc phng thc trong ServerSocket Socket. .. TRèNH MNG TRấN JAVA Cỏc chng trỡnh c thờm To mt a ch IP t mng byte, chui String InetAddressFactory .java Cho mt a ch tỡm tờn mỏy ReverseTest .java Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 16 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 17 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA Socket class Class mụ t v socket To mt socket Socket(InetAddress... address, int port) Socket( String host, int port) Socket( InetAddress address, int port, InetAddress, localAddr, int localPort) Socket( String host, int port, InetAddress, localAddr, int localPort) Socket( ) Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 18 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA Socket class (tip theo) Ly thụng tin v mt socket InetAddress getInetAddress() : tr v a ch m socket kt ni... DateTime Server import java. net.*; import java. io.*; import java. util.Date; public class DayTimeServer { public final static int daytimePort = 5000; public static void main(String[] args) { ServerSocket theServer; Socket theConnection; PrintStream p; try { theServer = new ServerSocket(daytimePort); Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 24 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA DateTime Server... THUT CLIENT/SERVER Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 11 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA Gúi java. net InetAddress ServerSocket Socket URL URLConnection DatagramSocket Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 12 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA InetAddress class Class mụ t v a ch IP (Internet Protocol) Cỏc phng thc getLocalHost, getByName, hay getAllByName... kt ni n socket ny v chp nhn nú void close() throws IOException : úng socket InetAddress getInetAddress() : tr v a ch cc b ca socket int getLocalPort() : Tr v port m server ang lng nghe void setSoTimeout(int timeout) throws SocketException Enable/disable SO_TIMEOUT vi khai bỏo timeout (milliseconds) Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 23 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA DateTime... K Thut Mỏy Tớnh Trang 31 Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH SOCKET VI TCP Server Server process phi chy trc Server phi to mt socket lng nghe v chp nhn cỏc kt ni t client Client Khi to TCP socket Xỏc nh IP address, port number ca server Thit lp kt ni n server Khi server nhn yờu cu kt ni, nú s chp nhn yờu cu v khi to socket mi giao tip vi client Cú th server chp nhn nhiu client ti mt... socket kt ni n int getPort() : tr v a ch m socket kt ni n InetAddress getLocalAddress() : tr v a ch cc b int getLocalPort() : tr v a ch cc b S dng Streams public OutputStream getOutputStream() throws IOException Tr v mt output stream cho vic vit cỏc byte n socket ny public InputStream getInputStream() throws IOException Tr v mt input stream cho vic c cỏc byte t socket ny Khoa Khoa Hc v K Thut Mỏy Tớnh... Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM LP TRèNH MNG TRấN JAVA Kt ni ờn 1 s webserver (tip theo) } catch (UnknownHostException e) { System.err.println("I can't find " + args[i]); } catch (SocketException e) { System.err.println("Could not connect to " + args[i]); } catch (IOException e) { System.err.println(e); } } // end for } // end main } // end getSocketInfo Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 21 Trửụứng . TRấN JAVA Gúi java. net InetAddress ServerSocket Socket URL URLConnection DatagramSocket Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 13 LP TRèNH MNG TRấN JAVA InetAddress. TRèNH MNG TRấN JAVA Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM Khoa Khoa Hc v K Thut Mỏy Tớnh Trang 18 LP TRèNH MNG TRấN JAVA Socket class Class mụ t v socket T o m t socket Socket( InetAddress. 19 LP TRèNH MNG TRấN JAVA Socket class (ti p theo) Ly thụng tin v mt socket InetAddress getInetAddress() : tr v a ch m socket kt ni n. int getPort() : tr v a ch m socket kt ni n. InetAddress