Socket and TCP clientserver Outline n n n

  • Slides: 11
Download presentation
Socket () and TCP clientserver

Socket () and TCP clientserver

Outline n n n TCP client-server 架構和TCP socket function TCP client-server建構流程圖

Outline n n n TCP client-server 架構和TCP socket function TCP client-server建構流程圖

TCP socket function n n 建立和連結函數:socket , bind 建立 listening socket: listen 接收連線要求函數:accept 連線建立和中断函數:connect

TCP socket function n n 建立和連結函數:socket , bind 建立 listening socket: listen 接收連線要求函數:accept 連線建立和中断函數:connect , close 讀寫(I/O):read , write

(1/5) n 1. 開啟 Socket介面:Socket 就如同傳輸管道的出入口, 建立傳輸應用的兩端點須各自開啟一Socket,往後的 資料傳送,均依賴 read(送入此Socket)或 write (由 Socket讀出) 資料。需給AF_INET(socket family)、

(1/5) n 1. 開啟 Socket介面:Socket 就如同傳輸管道的出入口, 建立傳輸應用的兩端點須各自開啟一Socket,往後的 資料傳送,均依賴 read(送入此Socket)或 write (由 Socket讀出) 資料。需給AF_INET(socket family)、 SOCK_STREAM (socket type)、protocoltype等參數。 sock = socket(AF_INET, SOCK_STREAM, 0);

(2/5) n 2. Binding Socket地址:Socket 出入口需Binding到TCP address, 網路上的電腦主 機才可以依據使用者所指定的TCP address,建 立資料傳送的通道。TCP address 包含IP address

(2/5) n 2. Binding Socket地址:Socket 出入口需Binding到TCP address, 網路上的電腦主 機才可以依據使用者所指定的TCP address,建 立資料傳送的通道。TCP address 包含IP address (如 140. 115. 17. 111) 及TCP Port number。我們熟悉的網路應用: telnet 140. 115. 17. 111 23與ftp 140. 115. 17. 111 21,均需依據所 指定的 host IP與 Port,建立連接、傳輸資料。 name. sin_family = AF_INET; name. sin_addr. s_addr = INADDR_ANY; name. sin_port = 5000; bind(sock, (struct sockaddr *)&name, sizeof name)

(3/5) n 3. Connection的建立:電腦主機可以使用Binding TCP address後的Sock et,建立資 料傳送通道。Server/Client 的 傳輸模式,Server 端需呼叫accept() 功能,等待Client的連接 建立要求。Client端則呼叫connect()功能,要求與Server主機 建立連接通道。

(3/5) n 3. Connection的建立:電腦主機可以使用Binding TCP address後的Sock et,建立資 料傳送通道。Server/Client 的 傳輸模式,Server 端需呼叫accept() 功能,等待Client的連接 建立要求。Client端則呼叫connect()功能,要求與Server主機 建立連接通道。 msgsock = accept(sock, (struct sockaddr *)0, (int *)0); connect(sock, (struct sockaddr *)&server, sizeof server)

(4/5) n 4. 傳輸網路資料:Client與Server主機間成功地建立連 接通道後。兩端均可藉由各自的Socket出入口,read 或write 資料到對方。 rval = read(msgsock, buf, sizeof(buf)) wrval=write(msgsock, buf,

(4/5) n 4. 傳輸網路資料:Client與Server主機間成功地建立連 接通道後。兩端均可藉由各自的Socket出入口,read 或write 資料到對方。 rval = read(msgsock, buf, sizeof(buf)) wrval=write(msgsock, buf, sizeof(buf))

server Socket() Bind() client Listen() Socket() 連線建立 Connect() Write() 要求資料 Accept() 等待連線 要求 Read()

server Socket() Bind() client Listen() Socket() 連線建立 Connect() Write() 要求資料 Accept() 等待連線 要求 Read() Write() 連線結束 恢復等待 回覆資料 Read() Close() Read() 告知傳輸結束 Close()

參考網址 n n http: //content. edu. tw/primary/info_edu/cy_sa /report/more/8611 a 8. htm http: //dslab. cis.

參考網址 n n http: //content. edu. tw/primary/info_edu/cy_sa /report/more/8611 a 8. htm http: //dslab. cis. thu. edu. tw/course/netw ork/netprog/sockets/socket. htm