Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
514,44 KB
Nội dung
L P TRÌNH M NG DÙNG SOCKET Bài Gi ng Khoa H c K Thu t Máy Tính KHÁI NI M V SOCKET Socket API – – – – Ð c gi i thi u BSD4.1 UNIX, 1981 Ð c ng d ng kh i t o, s d ng h y b Dùng ch client/server Cung c p hai d ch v chuy n d li u thơng qua socket API: • unreliable datagram • reliable, byte stream-oriented Khoa Khoa H c K Thu t Máy Tính KHÁI NI M V SOCKET Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Thi t k gi i thu t cho client – Gi i thu t cho ch ơng trình client dùng UDP Xác nh a ch server T o socket G i/nh n d li u theo giao th c l p ng d ng ã thi t k óng socket – Gi i thu t cho ch ơng trình client dùng TCP Xác nh a ch server T o socket K t n i n server G i/nh n d li u theo giao th c l p ng d ng ã thi t k óng k t n i Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Thi t k gi i thu t cho Server – Ch ơng trình server có hai lo i: L p(iterative) ng th i (concurrent) – Hai d ng giao th c ch ơng trình server: Connection-oriented Connectionless Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Khoa Khoa H c K Thu t Máy Tính THI T K GI I THU T CLIENT/SERVER Khoa Khoa H c K Thu t Máy Tính L P TRÌNH M NG TRÊN JAVA 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 H c K Thu t Máy Tính L P TRÌNH M NG TRÊN JAVA DateTime Server (ti p theo) while (true) { theConnection = theServer.accept(); p = new PrintStream(theConnection.getOutputStream()); p.println(new Date()); theConnection.close(); theServer.close(); } }catch (IOException e) { System.err.println(e); } } } Khoa Khoa H c K Thu t Máy Tính L P TRÌNH SOCKET V I UDP Cung c p ch truy n không tin c y gi a nhóm byte (datagrams) gi a client server Không c"n thi t l p k t n i gi a client server Sender ph i g i kèm a ch IP port ích Server nh n d li u s# phân tích a ch c a sender truy n l i Có th server ch p nh n nhi u client t i m t th i i m Khoa Khoa H c K Thu t Máy Tính L P TRÌNH SOCKET V I UDP Khoa Khoa H c K Thu t Máy Tính VÍ D (UDP Client) Khoa Khoa H c K Thu t Máy Tính VÍ D (UDP Client) Khoa Khoa H c K Thu t Máy Tính VÍ D (UDP Server) Khoa Khoa H c K Thu t Máy Tính VÍ D (UDP Server) Khoa Khoa H c K Thu t Máy Tính L P TRÌNH SOCKET V I TCP Server – – Server process ph i ch y tr Server ph i t o m t socket client c l!ng nghe ch p nh n k t n i t Client – – – Kh i t o TCP socket Xác nh IP address, port number c a server Thi t l p k t n i n server Khi server nh n yêu c"u k t n i, s# ch p nh n yêu c"u kh i t o socket m i giao ti p v i client – Có th server ch p nh n nhi u client t i m t th i i m Khoa Khoa H c K Thu t Máy Tính L P TRÌNH SOCKET V I TCP Khoa Khoa H c K Thu t Máy Tính Khoa Khoa H c K Thu t Máy Tính Khoa Khoa H c K Thu t Máy Tính Khoa Khoa H c K Thu t Máy Tính Khoa Khoa H c K Thu t Máy Tính BÀI T P Vi t ch ng trình Java/C t nslookup: – – – Cho tên tìm a ch IP Cho a ch IP tìm tên Giao di n t ơng t$ nh sau: Khoa Khoa H c K Thu t Máy Tính ng t nh ... H c K Thu t Máy Tính L P TRÌNH M NG TRÊN JAVA Socket class – – Class mô t v socket T o m t socket Socket(InetAddress address, int port) Socket( String host, int port) Socket( InetAddress address,... Khoa H c K Thu t Máy Tính L P TRÌNH M NG TRÊN JAVA ServerSocket class – – Class mô t v ServerSocket T o m t ServerSocket ServerSocket(int port) throws IOException ServerSocket(int port, int backlog)... localPort) Socket( String host, int port, InetAddress, localAddr, int localPort) Socket( ) Khoa Khoa H c K Thu t Máy Tính L P TRÌNH M NG TRÊN JAVA Socket class (ti p theo) – – L y thông tin v m t socket