1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Chương 5: Lập trình Socket

7 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 158,58 KB

Nội dung

[r]

(1)

Chương 5

(2)

NỘI DUNG

• Tổng quan

• Lập trình Socket với TCP

(3)

Tổng quan

Viết chương trình

– Chạy 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

thiết bị mạng phạm

vi này

application

transport network data link physical

application

transport network data link physical

application

(4)

Lập trình socket

Socket API

• Được giới thiệu BSD4.1

UNIX, 1981

• Được khởi tạo, sử dụng hủy

một cách tường minh bởi ứng

dụng

• Mơ hình client/server

• Hai loại dịch vụ truyền tải qua socket API:

– Datagram không bảo đảm – connection-oriented bảo

đảm

Một giao tiếp cục bộ trên host, được tạo bởi ứng dụng và được điều khiển bởi hệ điều hành, qua q trình ứng dụng có thể truyền (hay nhận) đến (hay từ) trình khác

socket

(5)

Giao tiếp giữa trình hai host khác nhau

• process truyền/nhận

thơng điệp đến/từ socket của nó

• socket tương tự như cửa ra vào

– Q trình truyền thơng điệp cửa

– Quá trình truyền dựa vào hạ tầng truyền tải phía của cánh cửa,

thông tin được chuyển đến

socket của trình thu

process

TCP với Buffer biến

socket host hay server

process

TCP với Buffer biến

socket host hay server

Internet

Kiểm soát hệ điều hành

Kiểm sốt người lập trình

(6)

Vi dụ: Java server (UDP)

import java.io.*; import java.net.*; class UDPServer {

public static void main(String args[]) throws Exception {

DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024];

byte[] sendData = new byte[1024]; while(true)

{

DatagramPacket receivePacket =

new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);

Tạo datagram socket tại port 9876

(7)

Ví dụ: Java server (UDP) (tiếp theo)

String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort();

String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes();

DatagramPacket sendPacket =

new DatagramPacket(sendData, sendData.length, IPAddress, port);

serverSocket.send(sendPacket); }

} }

Lấy IP addr port #, của sender

ghi datagram Ra socket

Kết thúc vòng lặp while, trở lại chờ datagram khác Tạo datagram để

Ngày đăng: 10/03/2021, 13:45

w