久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

計算機網絡原理實驗三

時間:2019-05-14 09:08:29下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《計算機網絡原理實驗三》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《計算機網絡原理實驗三》。

第一篇:計算機網絡原理實驗三

實驗

三、套接字編程

序號: 姓名: 字麗梅 學號: 20091120216 成績

1.實驗目的:

兩人一組,編寫一個客戶端、服務器程序,掌握Socket編程原理。2.實驗環境:

連入局域網絡的主機一臺。3.實驗指導:

Socket API是實現進程間通信的一種編程設施,也是一種為進程間提供底層抽象的機制。理解socket編程模型及其原理。4.實驗分析,回答下列問題。

a.運行指導書中的程序,并修改服務器的功能(自己思考),改寫成多線程web服務器(選作),附上源代碼,并加關鍵代碼注釋。

b.給出程序調試和運行的截圖。

c.回答下列問題:

(1)為什么在服務器和客戶端要包含winsock2.h文件?

答:Windows網絡編程至少需要兩個頭文件:winsock2.h和windows.h。

(2)為什么在服務器和客戶端程序中要加入#pragma comment(lib,“ws2_32.lib”)語句,如果不加會出現什么問題?

答:#pragma comment(lib,“ws2_32.lib”)表示鏈接ws2_32.lib這個庫。該庫對應ws2_32.dll,提供了對某些網絡相關API的支持,若使用其中的API,則應該將ws2_32.lib加入工程,如果不加入#pragma comment(lib,“ws2_32.lib”),則不能使用其中的API,即得不到相關API的支持。

(3)為什么在服務器和客戶端程序中要使用WSAStartup函數,如果不用程序會有什么問題?

答:本函數必須是應用程序或DLL調用的第一個Windows Sockets函數.它允許應用程序或DLL指明Windows Sockets API的版本號及獲得特定Windows Sockets實現的細節。應用程序或DLL只能在一次成功的WSAStartup()調用之后才能調用進一步的Windows Sockets API函數。如果不用應用程序或DLL就不能進一步的調用Windows Sockets API函數,程序就不能繼續執行。

(4)如果服務器程序中沒有memset(server.sin_zero, 0, sizeof(server.sin_zero));語句,程序會出現什么錯誤,為什么?

答:沒有錯誤,注釋這一條語句后,程序調試成功,實現訪問。

(5)如果先運行客戶端程序,程序會有什么現象,為什么會有這一現象?

答:程序跳出運行,并顯示”can not creat connect!”因為沒有相應的服務器與之創立鏈接。

(6)如果服務器程序所在計算機沒有連接網絡,程序會發生什么錯誤?我們捕獲到什么錯誤信息?

答:如果服務器程序所在計算機沒有鏈接網絡,則執行程序后出現:

binding stream socket: No error Press any key to continue...(7)上述服務器是串行處理多個客戶端的請求,如何該成并發處理的服務器? 答:用父進程調用accept,然后調用fork,這樣,已連接套接口就在父進程與子進程間共享,一般來說,接下來便是子進程讀、寫已連接套接口并關閉偵聽套接口,而父進程則關閉已連接套接口。

第二篇:計算機網絡原理實驗三

實驗

三、套接字編程

1.實驗目的:

兩人一組,編寫一個客戶端、服務器程序,掌握Socket編程原理。2.實驗環境:

連入局域網絡的主機一臺。3.實驗指導:

Socket API是實現進程間通信的一種編程設施,也是一種為進程間提供底層抽象的機制。理解socket編程模型及其原理。4.實驗分析,回答下列問題。

a.運行指導書中的程序,并修改服務器的功能(自己思考),改寫成多線程web服務器(選作),附上源代碼,并加關鍵代碼注釋。服務器:

#include “stdafx.h” #include #include #include #include #pragma comment(lib,“ws2_32.lib”)#define MYPORT 3490 /*定義用戶連接端口*/ #define BACKLOG 10 /*多少等待連接控制*/ #define SERVER_IP_ADDR “113.55.34.41” /*服務器的IP地址*/ int _tmain(int argc, _TCHAR* argv[]){ SOCKET sock, msgsock;#define PORT 3490 int length = 0;struct sockaddr_in server;struct sockaddr tcpaddr;char buf[1024] = “";int rval= 0, len= 0, err = 0,i;//用于循環 WORD wVersionRequested;WSADATA wsaData;wVersionRequested = MAKEWORD(2, 2);err = WSAStartup(wVersionRequested, &wsaData);if(err!= 0)return-1;sock = socket(AF_INET, SOCK_STREAM, 0);if(sock < 0){ perror(”opening stream socket“);exit(1);} server.sin_family = AF_INET;server.sin_port = htons(MYPORT);server.sin_addr.s_addr = inet_addr(SERVER_IP_ADDR);memset(server.sin_zero, 0, sizeof(server.sin_zero));rval = bind(sock,(struct sockaddr *)&server, sizeof(server));if(rval < 0){ perror(”binding stream socket“);exit(1);} length = sizeof(server);if(getsockname(sock,(struct sockaddr *)&server, &length)< 0){ perror(”getting socket name“);exit(1);} printf(”socket port #%dn“, ntohs(server.sin_port));listen(sock, 5);len = sizeof(struct sockaddr);do { msgsock = accept(sock,(struct sockaddr *)&tcpaddr,(int *)&len);if(msgsock ==-1)perror(”accept“);else {

for(i=0;i<=1000;i++)//循環控制 { memset(buf, 0, sizeof(buf));if((rval = recv(msgsock, buf, sizeof(buf),0)< 0))perror(”reading stream message“);if(rval == 0)

printf(”%sn“, buf);} } closesocket(msgsock);} while(TRUE);closesocket(msgsock);

客戶端:

#include ”stdafx.h“ #include #include #include #include return 0;} #pragma comment(lib,”ws2_32.lib“)#define PORT 3490 /* 客戶機連接遠程主機的端口*/ #define MAXDATASIZE 100 /* 每次可以接收的最大字節*/ int _tmain(int argc, _TCHAR* argv[]){ WORD wVersionRequested;WSADATA wsaData;int err = 0 ,rval = 0 ,i;SOCKET fd;struct sockaddr_in servaddr;struct hostent* hp;char buf[1024] = ”“;wVersionRequested = MAKEWORD(2, 2);err = WSAStartup(wVersionRequested, &wsaData);if(err!= 0)return-1;if((fd = socket(AF_INET, SOCK_STREAM, 0))< 0){ printf(”Can not create socket!“);exit(2);} servaddr.sin_family = AF_INET;servaddr.sin_port = htons(PORT);servaddr.sin_addr.S_un.S_addr=inet_addr(”113.55.34.41“);memset(servaddr.sin_zero, 0, sizeof(servaddr.sin_zero));rval = connect(fd,(sockaddr*)&servaddr, sizeof(servaddr));if(rval < 0){ printf(”Can not create connect!“);exit(3);} else {

for(i=0;i<=1000;i++)//循環控制 { memset(buf, 0, 1024);scanf(”%s“,&buf);rval = send(fd, buf, strlen(buf)+ 1,0);if(rval < 0)printf(”Write error!“);} } closesocket(fd);exit(5);} return 0;

b.給出程序調試和運行的截圖。

c.回答下列問題:

(1)為什么在服務器和客戶端要包含winsock2.h文件?

答:用Winsock2 API,這樣有助于對異步、非阻塞Socket編程機制的理解。為了簡單起見,服務器端和客戶端的應用程序均是基于MFC的標準對話框,網絡通信部分基于Winsock2 API實現。

(2)為什么在服務器和客戶端程序中要加入#pragma comment(lib,”ws2_32.lib")語句,如果不加會出現什么問題?

答:用該語句,指示編譯當前單元時,linker會優先鏈接該preproccessor 指定的lib文件,這樣等于就告訴編譯器有這樣一個lib文件可以去鏈接。如果不加就會出現類似“LNK2019: 無法解析的外部符號__imp__closesocket@4,該符號在函數_wmain 中被引用”的錯誤。

(3)為什么在服務器和客戶端程序中要使用WSAStartup函數,如果不用程序會有什么問題?

答:使用Winsock庫函數之前,必須先調用函數WSAStartup,該函數負責初始化動態連接庫Ws2_32.dll.若ws2_32.dll尚未初始化,是無法調用WSAGetLastError.WSAStartup是任何使用Winsock的應用程序或者 DLL首先必須調用Winsock庫函數.一方面它初始化 ws2_32.dll,另一方面他用于在應該程序DLL與系統Winsock庫版本協商。所以,如果不用該函數程序將無法按照正常的情況進行。

(4)如果程序在Turbo C環境下運行,在服務器和客戶程序中還需要上面的內容嗎?

答:不需要。

(5)如果服務器程序中沒有memset(server.sin_zero, 0,sizeof(server.sin_zero));語句,程序會出現什么錯誤,為什么?

答:此函數是為新申請的內存做初始化工作。如果去掉該語句在理論上面應該有錯誤,但是在我的實際操作中卻沒有錯誤,這個問題在我將繼續深究。

(6)如果先運行客戶端程序,程序會有什么現象,為什么會有這一現象?

答:無法連接。因為如果先運行客戶端的話,沒有服務器端等待,那么服務器端艱苦肯定無法給予響應,所以也就無法連接。

(7)如果服務器程序所在計算機沒有連接網絡,程序會發生什么錯誤?我們捕獲到什么錯誤信息?

答:無法連接。會出現報錯。

(8)上述服務器是串行處理多個客戶端的請求,如何該成并發處理的服務器?

答:用父進程調用accept,然后調用fork,這樣,已連接套接口就在父進程與子進程間共享,一般來說,接下來便是子進程讀、寫已連接套接口并關閉偵聽套接口,而父進程則關閉已連接套接口。

5.實驗環境:提供的Socket程序在visual c++ 2008中的設置(1)創建工程

(2)在應用程序開發中選擇預編譯頭

(3)源程序有如下改變,winsock2.h windows.h頭文件順序要改變

#include #include

第三篇:計算機網絡實驗三報告

實驗三 交換機配置

一、實驗目的

1、掌握交換機在網絡中的作用及交換機設備的選型。

2、掌握交換機的工作原理。

3、掌握利用超級終端對交換機配置的過程。

4、掌握Cisco2950交換機的基本配置方法,了解各交換機配置命令的作用。

二、實驗屬性

驗證性實驗。

三、實驗儀器設備及器材 硬件環境:Cisco 2950交換機、Windows操作系統的PC機,有關連接線。2 軟件環境 Windows xp操作系統,Packet Tracer 5仿真軟件

四、實驗要求

1、熟練掌握Cisco交換機基本配置命令及各命令的作用。

2、試驗中正確使用儀器設備,獨立操作。

3、試驗后按規定要求寫出實驗報告。

五、實驗內容和步驟

1、終端控制臺(console口)的連接和配置 PC機作為控制終端使用,用翻轉線連接PC機的串口與交換機的console口,Pcaket Tracer仿真軟件中實驗圖如圖1,可以多連接幾臺PC機,其中連線選用console,連接PC機的RS232接口。

圖1 Pcaket Tracer仿真實驗圖

(1)“開始”菜單“程序”→“附件”→“通信”→“超級終端”打開超級終端。(2)新建連接,選擇PC機使用的串口(本實驗為COM1),并將該串口設置為波特率9600波特、數據位8位、奇偶校驗位無、停止位1位、數據流控制無。或者直接點擊“還原為默認值”即可;如圖2所示。

圖2 com1屬性對話框 圖3 超級終端登陸界面

以上兩步在packet tracer軟件操作為:鼠標點擊PC,然后選擇“Desktop”,再點擊tenminal。(3)進入超級終端程序后,單擊“回車”鍵,系統將收到交換機的回送信息,如圖3。

2、交換機配置模式及幫助

交換機配置模式是用于不同級別的命令對交換機進行配置,同時提供了一定的安全性、規范性。

3、交換機工作模式切換

(1)登陸交換機,進入用戶模式。連接交換機并且登陸。請注意現在交換機上的顯示符號。顯示如下:Switch>

(2)使用命令(?)查看在用戶模式下所支持的命令。

Exec commands: <1-99> Session number to resume connect Open a terminal connection disconnect Disconnect an existing network connection enable Turn on privileged commands exit Exit from the EXEC logout Exit from the EXEC ping Send echo messages resume Resume an active network connection show Show running system information telnet Open a telnet connection terminal Set terminal line parameters traceroute Trace route to destination(3)進入特權模式,輸入(enable)。如果交換機有密碼保護那么此時需要輸入確認密碼。注意現在的提示符和用戶模式的差別,Switch#(4)使用命令(?)查看在特權模式下所支持的命令,注意和用戶模式下的區別。

Exec commands: <1-99> Session number to resume clear Reset functions clock Manage the system clock configure Enter configuration mode connect Open a terminal connection copy Copy from one file to another debug Debugging functions(see also 'undebug')delete Delete a file dir List files on a filesystem disable Turn off privileged commands disconnect Disconnect an existing network connection enable Turn on privileged commands erase Erase a filesystem exit Exit from the EXEC logout Exit from the EXEC more Display the contents of a file no Disable debugging informations ping Send echo messages 2 reload Halt and perform a cold restart resume Resume an active network connection setup Run the SETUP command facility(5)進入全局配置模式,輸入命令(configure terminal 或 config t)。提示符顯示如下:Switch(config)#(6)使用命令(?)查看在全局配置模式下所支持的配置命令。

Configure commands: banner Define a login banner boot Boot Commands cdp Global CDP configuration subcommands clock Configure time-of-day clock do To run exec commands in config mode enable Modify enable password parameters end Exit from configure mode exit Exit from configure mode hostname Set system's network name interface Select an interface to configure ip Global IP configuration subcommands line Configure a terminal line mac-address-table Configure the MAC address table no Negate a command or set its defaults service Modify use of network based services spanning-tree Spanning Tree Subsystem username Establish User Name Authentication vlan Vlan commands vtp Configure global VTP state(7)退出全局配置模式,使用快捷鍵(Ctrl+Z)退出全局配置模式,進入特權模式。也可以使用命令(exit)退出全局配置模式。

(8)退出特權模式,使用命令(disable)從特權模式會到用戶模式。

(9)退出交換機,使用命令(exit)退出交換機。這個命令可以用來從特權模式中退出交換機。

4、交換機名稱、口令設置

(1)通過超級終端進入交換機,并進入全局模式,鍵入命令:

Switch(config)#hostname switch2950 Switch2950(config)# 交換機的命令提示行的名稱由Switch更改為Switch2950。

(2)全局模式下,設定明文口令cisco,此口令可以限制對特權模式的訪問。在配置文件中可以看見口令。

Switch2950(config)#enable password cisco(3)全局模式下,設定加密口令Cisco,此口令可以限制對特權模式的訪問。

Switch2950(config)#enable secret cisco(4)接口模式下,設定控制臺終端的登陸口令為cisco。

Switch2950(config)#line console 0 //進入接口模式 Switch2950(config-line)#login //會提示設置密碼

Switch2950(config-line)#password cisco(5)接口模式下,設定遠程登陸口令為cisco Switch2950(config)#line vty 0 4 Switch2950(config)#login Switch2950(config)#password cisco 注:vty 0 4 是5個不同的虛擬終端連接。

(6)以上口令設置中,除了enable secret設置加密口令外,其余均可通過show run命令在配置文件中查看。可以通過全局命令將明文口令加密。

Switch2950(config)#service password-encryption(7)交換機命令歷史,Cisco交換機會保存輸入過的命令,并可以對保存的命令的個數進行設置,同時可以再次通過快捷方式進行使用,這在再次輸入很長或很復雜的命令時很有用。缺省情況下,系統會保存10條命令,最大可以設置256條命令。

設置命令行數為100 Switch2950#terminal history size 100(8)任何時候可以使用show running-config命令查看命令配置,可以在特權模式下使用copy running-config startup-config命令保存配置。

5、交換機VLAN設定

(1)在Cisco 2950上定義三個VLAN,分別取名為engineer , account, manager;Switch#vlan database VLAN 3 added: Name: engineer Switch(vlan)#vlan 4 name account VLAN 4 added: Name: account Switch(vlan)#vlan 5 name manager VLAN 5 added: Name: manager Switch(vlan)#apply

//進入vlan配置模式,database為虛擬局域網編號

Switch(vlan)#vlan 3 name engineer //定義vlan名稱及vlan號

(2)將端口12-15 加入到engineer 當中,端口16-18 加入到account 當中,端口24 加入到manager 當中。

Switch(config)#interface range fastEthernet 0/12 – 15 //將端口12-15加入到vlan中

Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 3 Switch(config-if-range)#interface range fastethernet 0/16-18 Switch(config-if-range)#switchport mode access Switch(config-if-range)#switchport access vlan 4 Switch(config)#interface fastethernet 0/24 //將一個端口加入到vlan中,單端口模式 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 5(3)返回到特權模式,用 show vlan查看vlan情況。

第四篇:數據庫原理實驗三

數據庫原理及應用實驗報告

實驗名稱:存儲過程 實驗類型:驗證型 實驗環境:oracle 11g 指導教師:陳 駿 專業班級:信安1505班 姓

名:

號:512015 聯系電話:電子郵件: 實驗地點:東6E501 實 驗 日 期: 2017年5月10日 實驗報告日期:2017年 5月 11日

成績:__________________________

一、實驗目的

(1)了解存儲過程的概念、優點

(2)熟練掌握創建存儲過程的創建方法(3)熟練掌握存儲過程的調用方法

二、實驗平臺

Oracle 11g

三、實驗步驟、出現的問題及解決方案(不能解決的將問題列出)(1)實驗步驟

1)建立存儲過程完成圖書管理系統中的借書功能。

功能要求:

? 借書時要求輸入借閱流水號,借書證號,圖書編號。(即該存儲過程有3個輸入參數)

? 借書時,借書日期為系統時間。? 圖書的是否借出改為‘是’

2)建立存儲過程完成圖書管理系統中的預約功能。? 預約時要求輸入預約流水號,借書證號,ISBN。(即該存儲過程有3個輸入參數)

? 存儲過程先檢查輸入的ISBN版本的圖書是否都已借出,如果是則進行預約,否則提示“該書目有可借圖書,請查找”。? 預約時間為系統時間。

3)建立存儲過程完成圖書管理系統中的還書功能。

? 還書時要求輸入借書證號,圖書編號,罰款分類號(即該存儲過程有3個輸入參數)。

? 還書日期為系統時間。? 圖書的是否借出改為‘否’。

(2)問題及解決方案

1)問題一:步驟一無法執行

原因:已創建的table中無“借書”項

解決方案:將原代碼中的“借書”改為“借閱” 2)問題二:步驟二中出現無法識別的符號 原因:將英文分號誤寫為中文分號

解決方案:修正為英文分號“;”

四、思考與總結

(1)書寫存儲語句時,應注意涉及的表格和屬性名應與創建表格時相同(2)注意區分中英文符號,避免出現符號無法識別以及程序沒有結尾等錯誤(3)注意空格的使用,避免出現缺少或多余的空格,造成語法錯誤

五、附:實驗完整源代碼

1、CREATE OR REPLACE PROCEDURE PRO_借書功能(VAL_借閱流水號 IN 借閱.借閱流水號%TYPE, VAL_借書證號 IN 借閱.借書證號%TYPE, VAL_圖書編號 IN 借閱.圖書編號%TYPE)AS BEGIN INSERT INTO 借閱(借閱流水號,借書證號,圖書編號,借書日期)VALUES(VAL_借閱流水號,VAL_借書證號,VAL_圖書編號,TO_CHAR(SYSDATE(),'YYYY/MM/DD'));UPDATE 圖書 SET 是否借出='是' WHERE 圖書.圖書編號 =VAL_圖書編號;DBMS_OUTPUT.PUT_LINE(' 本次借書操作完成!');END;

2、CREATE OR REPLACE PROCEDURE PRO_預約功能(Y_預約流水號 IN 預約.預約流水號%TYPE, Y_借書證號 IN 預約.借書證號%TYPE, Y_ISBN IN 圖書.ISBN%TYPE)AS Y_NUMBER BINARY_INTEGER;BEGIN SELECT COUNT(*)INTO Y_NUMBER FROM 圖書 WHERE 圖書.ISBN=Y_ISBN AND 圖書.是否借出='否';IF Y_NUMBER=0 THEN INSERT INTO 預約(預約流水號,借書證號,ISBN,預約時間)VALUES(Y_預約流水號,Y_借書證號,Y_ISBN,TO_CHAR(SYSDATE(),'YYYY/MM/DD'));DBMS_OUTPUT.put_line('可執行預約!');ELSE DBMS_OUTPUT.put_line('該書可借,請查找!');END IF;END;

3、CREATE OR REPLACE PROCEDURE PRO_還書功能(VAL_借書證號 IN 借閱.借書證號%TYPE, VAL_圖書編號 IN 借閱.圖書編號%TYPE, 4 VAL_罰款分類號 IN 借閱.罰款分類號%TYPE)AS VAL_TIME DATE;BEGIN SELECT SYSDATE INTO VAL_TIME FROM DUAL;UPDATE 借閱 SET 歸還日期=VAL_TIME WHERE 借書證號 =VAL_借書證號 AND 借閱.圖書編號=VAL_圖書編號;UPDATE 圖書 SET 是否借出='否' WHERE 圖書.圖書編號 =VAL_圖書編號;UPDATE 借閱 SET 罰款分類號=VAL_罰款分類號 WHERE 借書證號 =VAL_借書證號 AND 借閱.圖書編號=VAL_圖書編號;DBMS_OUTPUT.PUT_LINE(' 本次還書操作完成!END;

');

數據庫原理及應用實驗報告

實驗名稱:觸發器 實驗類型:驗證型 實驗環境:oracle 11g 指導教師:陳 駿 專業班級:信安1505班 姓

名:李 維 學

號:5120155364 聯系電話:*** 電子郵件: 實驗地點:東6E501 實 驗 日 期: 2017年5月10日實驗報告日期:2017年 5月 10日

成績:__________________________

一、實驗目的

(1)了解觸發器的概念、優點(2)掌握觸發器的方法和步驟(3)掌握觸發器的使用

四、實驗平臺

Oracle 11g

五、實驗步驟、出現的問題及解決方案(不能解決的將問題列出)(3)實驗步驟

1)通過序列和觸發器實現借閱表中借閱流水號字段的自動遞增。

2)通過序列和觸發器實現預約表中預約流水號字段的自動遞增

3)修改實驗三借書功能的存儲過程。

該存儲過程要求: ? 借書時輸入借書證號,圖書編號。(即該函數有2個輸入參數)

? 借書時,借書日期為系統時間。

*該存儲過程主體部分只有insert into語句。

4)建立與借書存儲過程相對應的觸發器,當借閱表中加入借閱信息時,該觸發器觸發,自動修改所借圖書的是否借出改為‘是’。

5)修改實驗三還書功能的存儲過程。

該存儲過程要求:

? 還書時輸入借書證號,圖書編號。(即該函數有2個輸入參數)? 還書時,還書日期為系統時間。

*該存儲過程主體部分只有一條UPDATE語句。

6)建立與還書存儲過程相對應的觸發器,當借閱表中填入還書日期時,該觸發器觸發,自動修改所還圖書的是否借出為‘否’。

2(4)問題及解決方案

1)問題一:步驟一中無法識別“seq_id”標識符 原因:未創建seq_id序列 解決方案:先創建該序列

2)問題二:步驟3無法執行

原因:已創建的table中無“借書”項

解決方案:將原代碼中的“借書”改為“借閱” 3)問題三:步驟二中出現無法識別的符號 原因:將英文分號誤寫為中文分號 解決方案:修正為英文分號“;” 4)問題四:

原因:變量賦值過程中使用了錯誤的賦值語句 解決方案:將bnum改為圖書編號

五、思考與總結

(4)在創建trigger之前應先創建sequence,避免出現序列號無法識別的錯誤(5)書寫存儲語句時,應注意涉及的表格和屬性名應與創建表格時相同(6)注意區分中英文符號,避免出現符號無法識別以及程序沒有結尾等錯誤(7)注意區別where和having的用法

(8)注意空格的使用,避免出現缺少或多余的空格,造成語法錯誤

六、附:實驗源代碼

(1)create sequence seq_借閱 start with 8 increment by 1 nomaxvalue nocycle nocache;create or replace trigger tr_借閱流水號 before insert on 借閱 for each row

begin

select seq_借閱.nextval into :new.借閱流水號 from dual;

end;

(2)create sequence seq_預約 start with 8 increment by 1 nomaxvalue nocycle nocache;create or replace trigger tr_預約流水號 before insert on 預約 for each row

begin

select seq_預約.nextval into :new.預約流水號 from dual;

end;

(3)create or replace procedure p_borrow_book_xg(p_jszh in number,p_tsbh in number)as v_sfjc 圖書.是否借出%type;begin

select 是否借出 into v_sfjc from 圖書 where 圖書編號=p_tsbh;

if v_sfjc='否' then

insert into 借閱(借書證號,圖書編號,借書日期)

values(p_jszh,p_tsbh,to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD'));

--update 圖書 set 是否借出='是' where 圖書編號=p_tsbh;

commit;

else

dbms_output.put_line('該圖書已經借出!');

end if;end;(4)create or replace trigger tr_借書 before insert on 借閱 for each row

begin

if inserting then

update 圖書 set 是否借出='是' where 圖書編號=:new.圖書編號;

select seq_借閱.nextval into :new.借閱流水號 from dual;

end if;

end;(5)create or replace procedure p_return_圖書(p_借書證號 in number,p_圖書編號 in number)as begin

update 借閱 set 歸還日期=to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD'),罰款分類號=p_罰款分類號 where 借書證號=p_借書證號 and 圖書編號=p_圖書編號;

update 圖書 set 是否借出='否' where 圖書編號=p_圖書編號;

commit;

end;(6)create or replace trigger tr_還書

after update

on 借閱

for each row begin

if updating then

update 圖書 set 是否借出 = '否' where 圖書編號 = :new.圖書編號;

end if;end;

第五篇:計算機網絡原理實驗三winsock套接字編程實驗報告

實驗

三、WINSOCK套接字編程實驗報告

序號:姓名:學號:成績

1.實驗目的:

用C或JAVA語言編寫客戶端、服務器程序,實現基于TCP或UDP的網絡通信數據傳輸服務,熟悉基于TCP或UDP的Socket編程原理。

2.實驗環境:

建立在TCP/IP 網絡體系結構之上計算機網絡實驗環境。各計算機除了安裝TCP/IP 軟件外,還安裝了TCP/IP 開發系統。計算機具備Windows環境中套接字socket 的編程接口功能,可為用戶提供全網范圍的進程通信功能。

3.實驗指導:

參見套接字編程實驗指導

4.實驗步驟

(1)運行指導書中給出的參考程序,分析實驗結果,并回答問題(1)-(3)

(2)根據給定參考程序修改代碼,完善修改服務器和客戶端的功能。并回答問題(4)-(5)

5.實驗結果分析

(1)為什么在服務器和客戶端要包含winsock2.h文件?

(2)為什么在服務器和客戶端程序中要加入#pragma comment(lib,“ws2_32.lib”)

語句,如果不加會出現什么問題?

(3)為什么在服務器和客戶端程序中要使用WSAStartup函數,如果不用,程序會有

什么問題?

(4)修改后的程序完成實現了什么功能,附上修改后的源代碼。(修改或填加的代

碼用波浪線標注,并填加注釋),并附上實驗截圖

(5)請詳細說明此實驗在設計及運行時遇到的問題和解決辦法,及實驗體會及建議。

下載計算機網絡原理實驗三word格式文檔
下載計算機網絡原理實驗三.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    計算機網絡實驗

    計算機網絡實驗 試驗一 網絡簡單觀察實驗(上機隨堂測試) 1. 2. 3. 4. 5. 6. 7. 觀察了解網卡、線纜、集線器、路由器等設備; 掌握windows中的網絡組成及各項參數; 了解通過TCP/I......

    計算機網絡實驗

    實驗一 交換機基本配置 一、 實驗目的 1. 掌握桌面網絡組建方法 2. 掌握Quidway S 系列中低端交換機幾種常見配置方法 二、 實驗內容 1. 通過 Console 口搭建配置環境 2. 通......

    云南大學軟件學院計算機網絡原理實驗四(★)

    實驗四、web服務器套接字編程實驗指導 1.實驗目的: 編寫一個WEB服務器程序,可以接受來自瀏覽器的訪問,并傳輸頁面(包含多個對象)到瀏覽器。掌握Socket編程。 2.實驗環境: 連入局域......

    計算機網絡原理答案

    第一章計算機網絡概述 一、選擇題。 1.下列接入方式不屬于寬帶網絡接入方式的是(A) A.雙絞線接入B.鋼線接入C.光纖接入D.無線接入 2.下列有關多媒體網絡中不同類型的數據對傳......

    計算機網絡原理最新計算題[推薦]

    公式積累 1. 延時=發送延時+傳播延時 2. 信道利用率=發送時間/總時間 3. 最短幀長=2倍傳播延時*數據傳輸速率 4. 吞吐率=原始幀發送時間/現發送一幀所用時間 5. 環比特長度=......

    計算機網絡原理 自考

    第1-2章試點本科試題 一、填空題(20個) 1、計算機網絡發展的四個階段為(面向終端的計算機網絡),計算機-計算機網絡,開放式標準化網絡,因特網的廣泛應用及高速網絡技術的發展。 2、......

    計算機網絡原理名詞解釋

    (1) ISO——國際標準化組織 (2) ITU——國際電信聯盟 (3) ANSI——美國國家標準協會 (4) EIA——電子工業聯盟 (5) IEEE——電器與電子工程師協會 (6) NSF——美國國家科學基金會 (7) DNS......

    計算機網絡原理教學大綱

    《計算機網絡》課程教學大綱(參考)一、課程性質和目的 《計算機網絡》是計算機與應用專業重要的專業基礎課。目的是結合TCP/IP協議簇深入講授計算機網絡體系結構、分層原理、數......

主站蜘蛛池模板: 亚洲 欧美 中文 在线 视频| 亚洲一线产区二线产区分布| 久久久久久自慰出白浆| 国内精品久久久久久久电影视| 亚洲欧洲日本综合aⅴ在线| 中文字幕乱码久久午夜| 中文字幕人成人乱码亚洲电影| 少妇无码吹潮| 精品国模一区二区三区| 三年的高清电影免费看| 老熟妇乱子交视频一区| 国产精品久久久久久久久岛国| 真人与拘做受免费视频| 亚洲一区二区三区写真| 亚洲精品无码久久毛片| 国产乱人伦偷精品视频免下载| 国产又爽又黄又爽又刺激| 羞羞影院成人午夜爽爽在线| 亚洲七久久之综合七久久| 5个黑人躁我一个视频| 日韩成人一区二区三区在线观看| 亚洲国产精品尤物yw在线观看| 久久综合九色综合97网| 久久亚洲国产成人精品性色| 在线精品亚洲一区二区小说| 国产亚洲精品久久久久秋霞| 国产玉足榨精视频在线观看| 色88久久久久高潮综合影院| 全球中文成人在线| 少妇厨房愉情理9仑片视频| 尹人香蕉久久99天天拍久女久| 久久久橹橹橹久久久久高清| 国产精品丝袜久久久久久不卡| 国产亚洲精品久久久久久国模美| 亚洲精品成人网久久久久久| 国产性夜夜春夜夜爽免费下载| 国产激情综合在线看| 国产 制服丝袜 动漫在线| 国产3p露脸普通话对白| 亚洲狠亚洲狠亚洲狠狠狠| 亚洲国产精品久久久久婷婷软件|