88、試題請閱讀以下說明和Socfort程序,將應填(n)處的字句寫在答題紙的對應欄內。[說明]網絡應用的基本模型是客戶機/服務器,這是一個不對稱的編程模型,通信的雙方扮演不同的角色:客戶機和服務器。以下是一個簡單的客戶機程序(服務器程序略),其工作過程非常簡單:曠課戶機與服務器建立連接后,接收服務器向客戶機返回的一條消息。程序中用到了兩種結構hostent與sockaddr_in;hostent類型的結構定義如下:
struct hostent}char·h_name://主機的正式名稱
char··h_aliases;//別名列表
int h_addrtype;//主機地址類型:AF-XXX
int H_length;//主機地址長度:4B(32b)
char··h_addr_list;//主機IP地址列表
#define h_addr h_addr_list[0]
sockaddr_in 類型的結構定義:sockaddr_in是通用套接字結構sockaddr在TCWIP協議下的結構重定義,為TCWIP套接字地址結構。
struct sockedorin
short int family;//地址類型AP_XXX, 其中AF_INET為TCP/IP專用
unsigned short int sin-port://端口號
struct in_addr sin_addr;//Intemet地址
//端口號以及Intemet地址使用的是網絡字節(jié)順序,需要通過函數htons轉換;
stuct in_addr!
_u32 s_addr; //類型為unsignel-long
程序中使用到了多個函數:struct hostent*gethostbyname(const char*hostname);函數gethostbyname查詢與指定的域名地址對應的IP地址,返回一個hostent結構的指針,如果不成功則返回NULL。int_socket(int domain ,im-type,intprotocol);函數socket創(chuàng)建一個套接字描述符,如果失敗返回一1。domain為地址類型,type為套接字類型,本題中為SOCK_STREAM;Protocol指定協議,本題中為0。int connect(int sockfd struct sockaddr*servaddr,int addrlen);函數connect與服務器建立一個連接,成功返回0,失敗返回~1。servaddr為遠程服務器的套接字地址,包括服務器的IP地址和端口號;addrlen為地址的長度。
int read(int fd, char*bur int len)
int write(int fd,char*bur int len)
函數read和write從套接字讀和寫數據,成功返回數據量大小,否則返回-1。buf指定數據患沖區(qū),len指定接收或發(fā)送的數據量大小。
89、試題5某單位有一個100臺機器的大機房,要實現每一臺計算機都上網,一般認為,用代理是一個辦法,但是工作量比較大,要為每一臺機器分別安裝客戶端軟件,而且還要設置IP地址、網關、DNS服務器等,每個工作站只要做簡單的設置就能自動接入Intemet了,同時還能讓網外的計算機直接訪問內部網的待定計算機。試簡述如何組建局域網“NAT”服務器。
90、輸入輸出系統主要采用三種方式與主機交換數據,對于這三種方式的描述正確的是(1)
(1)A 程序控制方式節(jié)省CPU
B 中斷方式耗費CPU時間
C DMA方式在傳輸過程中需要CPU的查詢
D 中斷方式無需CPU主動查詢和等待外設
91、在計算機指令系統中,通常采用多種確定操作數的方式。當操作數直接給出時,這種尋址方式叫作(2);當操作數的地址由某個指定的變址寄存器的內容與位移量相加得到時,叫作(3);如果操作數的地址是主存中與該指令地址無關的存儲單元的內容,叫作(4);
(2)A 間接尋址
B 相對尋址
C 變址尋址
D 立即數尋址
(3)A 變址尋址
B 相對尋址
C 間接尋址
D 立即數尋址
(4)A 堆尋址
B 間接尋址
C 立即數尋址
D 相對尋址
92、存儲器地址有很重要的作用,它的作用是(5)
(5)A 便于按照地址編號讀寫連續(xù)的數據
B 作為存儲器中不同數據字的惟一標志
C 便于程序連續(xù)存放
D 作為區(qū)分地址中的數據和指令的標志
struct hostent}char·h_name://主機的正式名稱
char··h_aliases;//別名列表
int h_addrtype;//主機地址類型:AF-XXX
int H_length;//主機地址長度:4B(32b)
char··h_addr_list;//主機IP地址列表
#define h_addr h_addr_list[0]
sockaddr_in 類型的結構定義:sockaddr_in是通用套接字結構sockaddr在TCWIP協議下的結構重定義,為TCWIP套接字地址結構。
struct sockedorin
short int family;//地址類型AP_XXX, 其中AF_INET為TCP/IP專用
unsigned short int sin-port://端口號
struct in_addr sin_addr;//Intemet地址
//端口號以及Intemet地址使用的是網絡字節(jié)順序,需要通過函數htons轉換;
stuct in_addr!
_u32 s_addr; //類型為unsignel-long
程序中使用到了多個函數:struct hostent*gethostbyname(const char*hostname);函數gethostbyname查詢與指定的域名地址對應的IP地址,返回一個hostent結構的指針,如果不成功則返回NULL。int_socket(int domain ,im-type,intprotocol);函數socket創(chuàng)建一個套接字描述符,如果失敗返回一1。domain為地址類型,type為套接字類型,本題中為SOCK_STREAM;Protocol指定協議,本題中為0。int connect(int sockfd struct sockaddr*servaddr,int addrlen);函數connect與服務器建立一個連接,成功返回0,失敗返回~1。servaddr為遠程服務器的套接字地址,包括服務器的IP地址和端口號;addrlen為地址的長度。
int read(int fd, char*bur int len)
int write(int fd,char*bur int len)
函數read和write從套接字讀和寫數據,成功返回數據量大小,否則返回-1。buf指定數據患沖區(qū),len指定接收或發(fā)送的數據量大小。
89、試題5某單位有一個100臺機器的大機房,要實現每一臺計算機都上網,一般認為,用代理是一個辦法,但是工作量比較大,要為每一臺機器分別安裝客戶端軟件,而且還要設置IP地址、網關、DNS服務器等,每個工作站只要做簡單的設置就能自動接入Intemet了,同時還能讓網外的計算機直接訪問內部網的待定計算機。試簡述如何組建局域網“NAT”服務器。
90、輸入輸出系統主要采用三種方式與主機交換數據,對于這三種方式的描述正確的是(1)
(1)A 程序控制方式節(jié)省CPU
B 中斷方式耗費CPU時間
C DMA方式在傳輸過程中需要CPU的查詢
D 中斷方式無需CPU主動查詢和等待外設
91、在計算機指令系統中,通常采用多種確定操作數的方式。當操作數直接給出時,這種尋址方式叫作(2);當操作數的地址由某個指定的變址寄存器的內容與位移量相加得到時,叫作(3);如果操作數的地址是主存中與該指令地址無關的存儲單元的內容,叫作(4);
(2)A 間接尋址
B 相對尋址
C 變址尋址
D 立即數尋址
(3)A 變址尋址
B 相對尋址
C 間接尋址
D 立即數尋址
(4)A 堆尋址
B 間接尋址
C 立即數尋址
D 相對尋址
92、存儲器地址有很重要的作用,它的作用是(5)
(5)A 便于按照地址編號讀寫連續(xù)的數據
B 作為存儲器中不同數據字的惟一標志
C 便于程序連續(xù)存放
D 作為區(qū)分地址中的數據和指令的標志