130 likes | 275 Vues
Socket 程式設計. 蔡進義 cyt@pmlab.iecs.fcu.edu.tw. 大綱. TCP/IP 協定介紹 什麼是 Socket. TCP/IP 協定介紹. FTP, SMTP, Telnet, DNS, SNMP. What is TCP/IP Transmission Control Protocol/Internet Protocol. TCP , UDP. 應用. Application. IP , ARP. 傳輸. Transport. Ethernet, FDDI, Token Ring. 網路. Network. 資料連結.
E N D
Socket程式設計 蔡進義 cyt@pmlab.iecs.fcu.edu.tw
大綱 • TCP/IP協定介紹 • 什麼是Socket
TCP/IP協定介紹 FTP, SMTP, Telnet, DNS, SNMP • What is TCP/IP • Transmission Control Protocol/Internet Protocol TCP, UDP 應用 Application IP, ARP 傳輸 Transport Ethernet, FDDI, Token Ring 網路 Network 資料連結 Data Link
Port 0 Port 1 Port 2 Port 3 … Port 65535 Port(埠) • 每一台主機有65536個ports • port 0 ~ port 65535 • 一些保留的ports • 20, 21: FTP • 23: Telnet • 80: HTTP • 未保留 • 1024 ~ 5000
socket() socket() bind() connect() listen() accept() write() read() read() write() Socket(連結導向), TCP 建立連線 Client Server
Socket(非連結導向), UDP socket() socket() bind() bind() sendto() recvfrom() Client Server sendto() recvfrom()
Client/Server模型 • Client端: • Client開啟一個socket並且使用一個port • Client使用connect以建立連結 • TCP要經過三向交握 • Client使用read/write system call對開啟的socket做讀寫的動作 • 關閉socket以結束連結
Client/Server模型 • Server端: • Server開啟一個socket並佔用一個port • 使socket進入被動模式來等待client的連結 • Server及client利用read/write system call進行對開啟的socket做讀寫的動作 • 關閉socket以結束連結
Socket System Call • Socket() • Socketpair() • Bind() • Connect() • Listen() • Accept() • Send() • Sendto() • Recv() • Recvfrom() • Close() • Readv() • Writev() • Getpeername() • Getsocketname()