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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

[r]

Trang 1

Chương 5

Lập trình socket

Trang 2

NỘI DUNG

• Tổng quan

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

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

Trang 3

Tổng quan

Viết chương trình

– 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

thiết bị mạng ngoài phạm

vi này

application

transport network data link physical

application

transport network data link physical

application

transport network data link physical

Trang 4

Lập trình socket

Socket API

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

UNIX, 1981

• Được khởi tạo, sử dụng và 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 đó quá trình ứng dụng có thể truyền (hay nhận) đến (hay từ) quá trình khác

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

Trang 5

Giao tiếp giữa các quá trình trên 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

– Quá trình truyền thông

điệp ra cửa

– 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,

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

socket của quá trình thu

process

TCP với Buffer và các biến socket

host hay server

process

TCP với Buffer và các biến socket

host hay server

Internet

Kiểm soát bởi

hệ điều hành

Kiểm soát bởi người lập trình

• API: (1) chọn giao thức truyền tải ; (2) khả năng sửa một vài

thông số

Trang 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

Tạo chỗ cho

datagram nhận

Nhận datagram

Trang 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 để

gửi cho client

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

w