Chương 5: Lập trình Socket
lượt xem 28
download
Tham khảo bài thuyết trình 'chương 5: lập trình socket', công nghệ thông tin, quản trị mạng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 5: Lập trình Socket
- Chương 5 L p trình socket
- N I DUNG • T ng quan • L p trình Socket v i TCP • L p trình Socket v i UDP
- T ng quan application transport network data link Vi t chương trình physical – Ch y trên các h th ng u cu i – Truy n thông qua m ng – Ví d web server giao ti p v i browser Vi t chương trình trên các application transport thi t b m ng ngoài ph m network data link application physical vi này transport network data link physical
- L p trình socket M c tiêu: bi t cách xây d ng m t ng d ng client/server giao ti p b ng socket Socket API socket • ư c gi i thi u trong BSD4.1 M t giao ti p c c b UNIX, 1981 trên host, ư c t o • ư c kh i t o, s d ng và h y b i ng d ng và ư c m t cách tư ng minh b i ng i u khi n b i h d ng i u hành, qua ó quá • Mô hình client/server trình ng d ng có th • Hai lo i d ch v truy n t i qua truy n (hay nh n) n socket API: (hay t ) quá trình – Datagram không b o m khác – connection-oriented b o m
- Giao ti p gi a các quá trình trên hai host khác nhau • process truy n/nh n host hay host hay server server thông i p n/t socket c a nó Ki m soát b i ngư i l p trình • socket tương t như c a process process ra vào socket socket – Quá trình truy n thông TCP v i TCP v i Internet i p ra c a Buffer và Buffer và các bi n các bi n – Quá trình truy n d a vào h t ng truy n t i trên phía kia c a cánh c a, Ki m soát b i h i u hành thông tin ư c chuy n n socket c a quá trình thu • API: (1) ch n giao th c truy n t i ; (2) kh năng s a m t vài thông s
- N I DUNG • T ng quan • L p trình Socket v i TCP • L p trình Socket v i UDP
- L p trình socket v i TCP Socket: Như là c a thông gi a các quá trình ng d ng và giao th c truy n t i end-to-end (UCP hay TCP) TCP service: truy n t i b o m cho các byte t m t process n m t process khác ư c ki m soát b i ư c ki m soát b i process process ngư i l p trình ngư i l p trình ng d ng socket ng d ng socket TCP v i TCP v i ư c ki m soát b i ư c ki m soát b i Buffer và Buffer và h i u hành internet h i u hành các bi n các bi n host hay host hay server server
- L p trình socket v i TCP Client ph i liên l c v i server • Khi ư c liên h b i client, server TCP t o socket m i • Trư c h t quá trình trên quá trình server giao ti p server ph i ch y v i client • server ph i t o socket – Cho phép server giao ti p ón ti p client v i nhi u quá trình client Client liên l c server b ng: – Các ch s port ư c dùng • T o TCP socket phân bi t các client • Ch ra IP address, port number c a quá trình trên server T góc ng d ng • Khi client t o socket: client TCP cung c p d ch v truy n t i có TCP thi t l p k t n i n tr t t và b o m gi a client và server TCP server
- Tương tác gi a client socket và server socket qua TCP Server Client T o socket, port=x, ón yêu c u: welcomeSocket = ServerSocket() TCP T o socket, i yêu c u Thi tl pk tn i connect to hostid, port=x k tn i n clientSocket = connectionSocket = Socket() welcomeSocket.accept() G i yêu c u dùng c yêu c u t clientSocket connectionSocket Ghi ph n h i ra connectionSocket c ph n h i t clientSocket close close connectionSocket clientSocket
- Thu t ng Stream keyboard monitor • Stream là m t tu n t các ký t i vào hay i ra inFromUser input m t quá trình. stream Client Process • M t input stream ư c process k t v i m t ngu n nh p c a quá trình, ví d bàn phím hay socket. inFromServer outToServer • M t output stream ư c output input stream stream k t v i m t ích n c a quá trình, ví d màn hình client TCP clientSocket socket hay socket. TCP socket to network from network
- Ví d ng d ng client-server 1) client c dòng ký t t u vào chu n (inFromUser stream), r i g i n server qua socket (outToServer stream) 2) server c dòng ký t t socket 3) server i các dòng ký t thành ch hoa, g i ngư c l i cho client 4) client c và in dòng ký t t socket (inFromServer stream)
- Ví d : Java client (TCP) import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; To BufferedReader inFromUser = input stream new BufferedReader(new InputStreamReader(System.in)); To client socket, Socket clientSocket = new Socket("hostname", 6789); k t n i n server DataOutputStream outToServer = To new DataOutputStream(clientSocket.getOutputStream()); output stream g n vào socket
- Ví d : Java client (TCP) (ti p theo). To BufferedReader inFromServer = input stream new BufferedReader(new g n vào socket InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); G i dòng ký outToServer.writeBytes(sentence + '\n'); t n server modifiedSentence = inFromServer.readLine(); c dòng ký t t server System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } }
- Ví d : Java server (TCP) import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; To welcoming socket ServerSocket welcomeSocket = new ServerSocket(6789); T i port 6789 while(true) { i client liên h Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new T o input stream, InputStreamReader(connectionSocket.getInputStream())); g n vàosocket
- Ví d : Java server (TCP) (ti p theo) T o output stream, DataOutputStream outToClient = g n vào socket new DataOutputStream(connectionSocket.getOutputStream()); c dòng ký clientSentence = inFromClient.readLine(); t t socket capitalizedSentence = clientSentence.toUpperCase() + '\n'; Ghi dòng outToClient.writeBytes(capitalizedSentence); ký t ra socket } } } K t thúc vòng l p while, tr l i ch k t n i khác t client
- N I DUNG • T ng quan • L p trình Socket v i TCP • L p trình Socket v i UDP
- L p trình socket v i UDP UDP: không có k t n i gi a client và server • Không b t tay T góc ng d ng • sender g n a ch IP và UDP cung c p d ch v port c a ích vào m i truy n t i không b o m gói gi a client và server • server ph i tách a ch IP và port c a client t gói nh n ư c UDP: data có th không úng th t máy thu hay m t
- Tương tác gi a client socket và server socket qua UDP Server Client T o socket, T o socket, clientSocket = port= x. DatagramSocket() serverSocket = DatagramSocket() T o datagram v i server IP và port=x; g i datagram qua clientSocket c datagram t serverSocket Ghi ph n h i ra serverSocket c datagram t ch ra clientSocket client address, port number close clientSocket
- Ví d : Java client (UDP) keyboard monitor inFromUser input stream Client Process Input: nh n packet process Output: truy n packet (TCP g i receivePacket sendPacket dòng byte) UDP UDP packet packet client UDP clientSocket socket UDP socket to network from network
- Ví d : Java client (UDP) import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { To input stream BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); To client socket DatagramSocket clientSocket = new DatagramSocket(); Thông d ch InetAddress IPAddress = InetAddress.getByName("hostname"); hostname sang IP address dùng DNS byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes();
CÓ THỂ BẠN MUỐN DOWNLOAD
-
CHƯƠNG 5:LẬP TRÌNH WEB CHẠY Ở SERVER
42 p | 100 | 25
-
Bài giảng Lập trình mạng bằng ngôn ngữ java: Chương 5 - Dương Khai Phong
45 p | 138 | 24
-
CHƯƠNG 5: LẬP TRÌNH WEB CHẠY Ở SERVER (tt)
22 p | 130 | 23
-
Bài giảng Nhập môn mạng máy tính: Chương 5 - Ninh Xuân Hương
40 p | 145 | 18
-
Bài giảng Mạng máy tính: Bài 5 (Chương II) - ThS. Nguyễn Cao Đạt
43 p | 129 | 15
-
Giáo trình Lập trình mạng với ngôn ngữ java: Phần 2
85 p | 75 | 14
-
Giáo trình Công nghệ Java
226 p | 68 | 10
-
Giáo trình Lập trình truyền thông: Phần 2 - NXB Giao thông Vận tải
122 p | 60 | 10
-
Bài giảng Lập trình mạng: Chương 5 - Lương Ánh Hoàng
11 p | 110 | 9
-
Bài giảng Mạng máy tính - Chương 5: Lập trình socket
23 p | 77 | 8
-
Bài giảng Lập trình mạng: Chương 5 - ThS. Trần Bá Nhiệm
66 p | 70 | 8
-
Bài giảng Lập trình mạng: Chương 5 - Trương Đình Huy
11 p | 32 | 6
-
Bài giảng Lập trình mạng (Network Programming): Chương 5 - Lương Ánh Hoàng
165 p | 43 | 5
-
Bài giảng Mạng máy tính: Chương 5 - Nguyễn Hồng Sơn
23 p | 38 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn