当前位置:文档之家› 网络程序设计考试大作业

网络程序设计考试大作业

网络程序设计考试大作业
网络程序设计考试大作业

网络程序设计考试大作业

题目:聊天室程序

班级:

学号:

姓名:

成绩:

网络程序设计考试大作业?错误!未定义书签。

一。所使用得背景知识、主要函数得描述?错误!未定义书签。

二。程序设计思想及程序设计流程框图?错误!未定义书签。

三.主要代码及代码运行结果?错误!未定义书签。

1、启动服务器?错误!未定义书签。

2、登录?错误!未定义书签。

3、注册?错误!未定义书签。

4、登录与注册判定?错误!未定义书签。

5、进入聊天界面?错误!未定义书签。

6、私聊页面 ........................................错误!未定义书签。

一.所使用得背景知识、主要函数得描述

背景:根据现在最流行得聊天工具QQ,模仿一部分主要功能来完成.

主要函数:

publicclass Server;服务器得创建。

publicclassClient;客户端得创建.

public class UserInformation;用户信息得保存与验证。

二。程序设计思想及程序设计流程框图

设计思想:

利用socket与serversocket在客户端与客户端之间得通信,InputStream InputStreamReader输入输出流进行信息得发送与接收。

程序设计流程:

主页面:输入账号与密码,点击登录或者注册进入下一页面.

登录:判定就是否正确,正确则进去聊天界面.

注册:进去注册界面,成功则返回主页面。

进入聊天室:能发送信息让在线得所有人瞧到。

1、启动服务器

代码:

public class Server {

ServerSocket server;

?static int clientNum= 0;

?// 存放与服务器连接上得对应得Socket,作用就是保存服务器与客户端之间得流,便于服务器给每个客户端进行回发消息

List〈Socket> clientConnection = new ArrayList<Socket〉();

public Server(){

?try{

server=newServerSocket(9999);

???System、out、println("服务器已经启动");

?}catch (IOExceptione) {

??e、printStackTrace();

???System、out、println("服务器启动失败");

?}

?}

?// 内部类,监听客户端就是否有连接到服务器,并将此客户端得Socket传递给HandleSocket进行处理,同时将client存放到List中,即clientConnection 中

classSocketListener implements Runnable {

?public void run() {

??Socket client;

??try{

???while(true){

?client= server、accept();

?????//连接上一个就压入List中,即clientConnection中

????clientConnection、add(client);

??HandleSocket hs = new HandleSocket(client);

??// 连接上就让HandleSocket去处理

????new Thread(hs)、start();

???}

?} catch(IOException e){

?System、out、println(”客户连接服务器失败”);

?}

?}

}

?// 内部类处理一个Socket,接收一个Client发送过来得消息,并且服务器原封不动得返回给所有客户端,客户端对消息进行过滤

?class HandleSocketimplements Runnable {

?Socket client;

?HandleSocket(Socket client) {

?this、client=client;

??}

?public voidrun() {

??try {

????clientNum++;

??// 启用输入流

???InputStream is = client、getInputStream();

?InputStreamReaderisr = new InputStreamReader(is);

?BufferedReader br = new BufferedReader(isr);

??System、out、println(”第"+ clientNum+ ”个客户端连接

进入服务器");

????boolean flag=true;

??String s;

?do {

???// 对用户发来得消息进行群发给客户端

????s= br、readLine();

????System、out、println(”接受到一个客户端消息:"+ s);

???for(int i = 0;i〈clientConnection、size(); i++) {??Socket client = clientConnection、get(i);

??OutputStream os=client、getOutputStream();

?PrintStream ps= newPrintStream(os);

????ps、println(s);

????}

??}while(flag);

??client、close();

}catch(IOException e){

???System、out、println(”有一个客户断开与服务器得连接");

?}

?}

界面:

2.登录

代码:

package 、qq、main;

import java、awt、Color;

import java、awt、Dimension;

import java、awt、Toolkit;

import java、awt、event、ActionEvent;

import java、awt、event、ActionListener; importjavax、swing、JButton;

import javax、swing、JFrame;

import javax、swing、JLabel;

import javax、swing、JOptionPane;

import javax、swing、JPasswordField;

importjavax、swing、JTextField;

import 、qq、regist、Regist;

import 、qq、regist、UserInformation;

/**

*主界面

*/

public class Main extends JFrame {

//组件得内容

private JLabeluserId;

private JLabel userPassword;

?private JTextField inputId;

?private JPasswordField inputPassword;

?private JButton btLogin;

private JButton btRegist;

Main() {

?userId = new JLabel("帐号”);

??userPassword = new JLabel("密码”);

?inputId = new JTextField(6);

?inputPassword = new JPasswordField();

?btLogin =new JButton("登陆");

?btRegist = new JButton("注册");

?// 设置窗体属性

Toolkit tk = Toolkit、getDefaultToolkit();

Dimension screenSize = tk、getScreenSize();//得到当前屏幕得长与宽

?int x = (int) screenSize、getWidth();

?int y = (int) screenSize、getHeight();

?this、setBounds((x — 240) / 2, (y - 600) / 2,240,600);//窗口显示得大小,位置

this、setResizable(false);//窗口大小不能改变

??this、setLayout(null);//默认得格式

?this、setBackground(Color、BLACK);// 窗口得颜色

this、setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);//退出程序

??// 设置JLabel属性

??userId、setBounds(30, 160, 40,20);

??userPassword、setBounds(30, 200, 40, 20);

?// 设置文本域属性

??inputId、setBounds(90, 160,100,20);

??inputPassword、setBounds(90, 200, 100,20);

inputPassword、setEchoChar('*’);//用*显示代替您输入得密码

??// 设置JButton属性

??btLogin、setBounds(50, 240, 60, 20);

btRegist、setBounds(120, 240, 60, 20);

??// 注册“登陆"按钮监听器

?btLogin、addActionListener(newActionListener() {

???public void actionPerformed(ActionEvent e) {

???UserInformation user = new UserInformation();

????StringuserName = inputId、getText();

String userPassword = new String(inputPassword、getPassword());

??if (userName、equals(”")){

???JOptionPane、showMessageDialog(null,”用户名不能为空");

???} else if(""、equals(userPassword)) {

??JOptionPane、showMessageDialog(null, "密码不能为空”);

??} else if (user、isExist(userName)

??&& user、userInfomation、getProperty(userName)、equals(

????userPassword)) {

??new AllTalkFrame(userName)、setVisible(true);// 判断成功后new一个群聊窗口

?Main、this、dispose();

??} else {

??JOptionPane、showMessageDialog(null,”此用户名不存在或者密码不正确");

??}

??}

?});

// 注册“注册”按钮监听器

?btRegist、addActionListener(new ActionListener(){??public void actionPerformed(ActionEvent e) {

?new Regist();//注册页面

??}

});

??this、add(userId);

?this、add(userPassword);

?this、add(inputId);

this、add(inputPassword);

this、add(btLogin);

?this、add(btRegist);

?this、setVisible(true);

?}

?public static void main(String[] args) {

?newMain();

?}

}

界面:

3.注册

代码:

// 注册“提交”按钮得监听器

?btSubmit、addActionListener(new ActionListener() { ??publicvoid actionPerformed(ActionEvent e) {

????StringuserName = inputId、getText();

??StringuserPassword=new String(inputPassword、getPa ssword());

??String userPasswordConfirm = new String(inputPasswordConfirm

????、getPassword());

???System、out、println(”您点击了提交按钮");

??if(userName、equals("”)){

??JOptionPane、showMessageDialog(null, ”用户名不能为空”);

??} elseif(”"、equals(userPassword)

????|| ""、equals(userPasswordConfirm)) {

??JOptionPane、showMessageDialog(null,"密码与密码重复都不能为空”);

???} else if (!userPassword、equals(userPasswordConfirm)) {

??JOptionPane、showMessageDialog(null,"密码与密码重复不一致");

??}else {

????UserInformation user= newUserInformation();

?if(user、isExist(userName)) {

?JOptionPane、showMessageDialog(null,"此用户名已存在");

????}else {

?????JOptionPane、showMessageDialog(null,"注册成功");

????user、insert(userName,userPassword);//UserInforma tion类

???Regist、this、dispose();

????}

?}

??}

??});

// 注册“取消”按钮得监听器

?btCancel、addActionListener(new ActionListener() { ?public void actionPerformed(ActionEvent e){

??System、out、println(”您点击了取消按钮");

??Regist、this、dispose();

?}

?});

界面:

4.登录与注册判定

代码:

//注册一个用户

publicvoid insert(String userName,StringuserPassword){

??try{

??userInfomation = new Properties();

???InputStream is;

OutputStream os;

??is = new("c:/userInfo、properties");

??os = new (”c:/userInfo、properties”,true);

??userInfomation、load(is);

???// 将用户名与密码存储到内存中

?userInfomation、setProperty(userName,userPassword);

//将用户名与密码保存到文件中

?userInfomation、store(os,null);

?} catch ( e1){

??System、out、println(”文件userInfo、properties没有找到");

?} catch (IOException e) {

?System、out、println("写 userInfo、properties 出错");

}

?//判断此用户名就是否存在

publicboolean isExist(String userName) {

??try{

??userInfomation = new Properties();

?InputStream is;

?is = new("c:/userInfo、properties”);

??userInfomation、load(is);

??if(userInfomation、containsKey(userName)){

?returntrue;

??}

??}catch(e1) {

???System、out、println(”文件userInfo、properties没有找到");

??}catch(IOException e) {

???System、out、println(”写userInfo、properties 出错");

??}

??returnfalse;

?}

5.进入聊天界面

代码:

classshowOldMessageThreadimplements Runnable{

??publicvoid run(){

??boolean flag = true;

while(flag){

??try {

????// 接收群聊服务器端回发过来得消息

????String serverOutput= client、br、readLine()+"\r\n";???if(!serverOutput、startsWith(”私聊")

?????&&!serverOutput、startsWith("*")

?????&&!(serverOutput、substring(serverOutput

??????、indexOf(":”) + 1)、equals("\r\n"))){

??Strings1=serverOutput、replace(’说',' ');

???String s=s1、replaceAll("。", "\r\n ”);

????oldMessageTextArea、append(s);

?}

???// 添加客户端得用户在线列表

??if(!serverOutput、startsWith(”*”)

????&& !serverOutput、startsWith(”私聊”)

????&& (serverOutput、indexOf("说") !=—1)) {

????String listName = serverOutput、substring(0,

??serverOutput、indexOf('说’));

???// 如果JList中有相同名字得用户,则不添加,否则添加

???if (!users、contains(listName)) {

????System、out、println("用户"+listName+"上线了"); ??????users、add(listName);

??userList、setListData(users);

????}

??}

??// 判断服务器回发过来得消息就是不就是以”私聊"开头得,就是得话就提取出这两个用户名

if (serverOutput、startsWith("私聊”)){

???String siliaoName1 = serverOutput、substring(

??serverOutput、indexOf("*")+ 1,serverOutput ?????、indexOf(”与”));

??String siliaoName2 = serverOutput、substring (

??serverOutput、indexOf("与") + 1,serverOutput

???、indexOf("\r"));

?String siliaoBenshen = "”;

???String siliaoDuixiangName="";

???if(siliaoName1、equals(clientName)){?siliaoBenshen = siliaoName1;

???siliaoDuixiangName = siliaoName2;

?????}else{

??????siliaoBenshen = siliaoName2;

??siliaoDuixiangName=siliaoName1;

???}

??// 判断这两个名字中就是否有与自己同名得,有得话就弹出个私聊窗口

???if (siliaoName1、equals(clientName)

??????|| siliaoName2、equals(clientName)) {

?????newPointToPointTalkFrame(siliaoBenshen + ”与"???????+ siliaoDuixiangName)、setVisible(true);

???}

??}

???}catch(IOException e1) {

???System、out、println("读取服务器端消息出错");

???}

??}

?}

?}

?// 注册JList得点击事件,进入私聊界面

userList、addMouseListener(newMouseAdapter() {?public void mouseClicked(MouseEvent e) {

??if(e、getClickCount() == 2){

????if (AllTalkFrame、this、userList、getSelectedValue() ????、toString()、equals(clientName)){

????JOptionPane、showMessageDialog(null, "不能与自己聊天");

????}else {

???String PToPMemberName= ”私聊”

?????+”*”

??????+ clientName

???????+ "与"

???+ AllTalkFrame、this、userList、getSelectedVa lue()

???????、toString();

??client、ps、println(PToPMemberName);

???}

?}

??}

??});

界面:

6.私聊页面

代码:

?// 线程:只要服务器端有消息,就将消息显示到oldMessageTextArea

?class showOldMessageThread implements Runnable{ public voidrun(){

booleanflag= true;

??while(flag){

try{

???// 接收服务器端回发过来得消息

????StringserverOutput = client、br、readLine()+"\r\n”;????System、out、println("私聊服务器发过来得消息:”+ serverOutput);

??// 将消息中得两个用户名提取出来

????String s1 = "";

???if(serverOutput、startsWith("私聊”)){

???String[]s;

??if (serverOutput、startsWith("私聊*”)) { ???s = serverOutput、substring(3,

???serverOutput、indexOf("\r"))、split("与");

???}else {

??????s= serverOutput、substring(2,

???serverOutput、indexOf(”说"))、split("与”);

?}

???for(int i= 0;i<s、length;i++) {

??s1=s1+s[i];

??}

?}

???// 将标题中得两个用户名提取出来,有两种顺序

????String[]title = clientName、split("与");

?Strings2 = "";

???for(inti = 0;i〈title、length;i++) { ???s2 = s2 + title[i];

??}

???String s3="";

??for (int i = title、length-1; i〉=0;i—-) {

???s3 = s3+title[i];

????}

???// 判断服务器端返回消息中得两个用户名等于客户端得两个用户名(忽略顺序),则将消息显示出来(也就就是显示在私聊窗口上)

???if(s1、equals(s2)|| s1、equals(s3)) {

??Stringss1 = serverOutput、substring(2, serverOut put

????、indexOf("与"));

????String ss2 = serverOutput、substring(serverOutput

??、indexOf(":"));

??// 将私聊客户端返回来得一行字符串按”?”进行拆分成多行,显示在私聊得oldMessageArea中

?if(ss2、indexOf("。") != -1) {

?????ss2= ss2、replaceAll("。", "\r\n ");

??}

???oldMessageTextArea、append(ss1 + ss2);

?}

??}catch(IOException e1) {

?System、out、println("读取服务器端消息出错");

??}

??}

}

?}

界面:

网络编程试卷(含答案)

大学期末考试试卷(A卷) 20 学年第1学期考试科目:网络编程 考试类型:(闭卷)考试时间:120 分钟 学号姓名年级专业 一.选择题(30分,每题3分) 1.以下哪个是TCP/IP模型?(B) A.应用层,表示层,网络层,物理层; B.应用层,传输层,网络层,链路层C.应用层,传输层,链路层,物理层 D.应用层,传输层,网络层,物理层 2.P2P的设计架构不包含以下哪一种?( C) A.集中式架构 B.完全分布式架构 C.点对点架构 D.混合型架构 3.HTTP请求方法不包括如下哪一种( B) A.Post B.Update C.Get D.Head 4.FTP的作用不包括(C) A.文件共享; B. 通过应用程序直接或间接使用远程主机; C.提供一致性的协议,避免用户在不同主机上有不相同的操作方式; D. 提供可靠及有效率的数据传输; 5.SMTP与POP3的端口分别是:( B) A.25,75 B. 25,110 C.21,75 D. 21,110 6.IP地址是192.168.100.2,子网掩码是255.255.255.0,则其网段的广播地址是(C)A.192.168.100.1 B.192.168.100.0 C.192.168.100.255 D.255.255.255.255 7.TCP的特点不包括如下哪一点(C) A.面向连接 B.全双工数据传送 C.传输速度快 D.面向字节流 8.关于线程哪一点是对的。(D)

A.任何一个C#程序都有一个默认的线程,该线程是后台线程; B. 每个进程都有一个线程池。线程池默认大小有35个线程; C.线程池中的线程都是前台线程; D. C#中常用的线程同步的语句是lock语句; 9.在Internet中用一个三元组可以在全局中唯一标识一个应用层进程,这不包括下列哪一种( A ) A.网络层协议 B.IP地址 C.端口号 D.传输层协议 10.TCP/IP协议簇中,哪一种是网络层协议( B ) A.TCP B.ARP C.SMTP D.TFTP 二.判断题(15分,每题1分,用T表示对,F表示错) 1.端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535 (F) 2.线程池中既有后台线程也有前台线程,某进程的所有前台线程都终止了,后台进程也自 然终止。(F) 3.在SMTP中,电子邮件由信封、首部和正文3部分组成。(T) 4.数字签名是私钥加密,公钥解密。(T) 5.ESMTP与SMTP的区别是发送邮件时要求用户身份验证。(T) 6.HTTP的流水线方式是指客户在收到前一个响应后才能发出下一个请求。(F) 7.HTTP(Hypertext Transfer Protocol),超文本传输协议,目前的版本是1.0 。(F) 8.NA T功能是只能用硬件来实现(F) 9.IP地址有A,B,C,D,E五类(F) 10.UDP不需要连接,速度比TCP快;(T) 11.UDP传输的数据无消息边界;(F) 12.Socket类比位于底层TcpClient类提供了更高层次的抽象,它们封装TCP套接字的创建, 不需要处理连接的细节。(F)

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计

山东建筑大学 课程设计成果报告 题目:基于Python的网络爬虫设计课程:计算机网络A 院(部):管理工程学院 专业:信息管理与信息系统 班级: 学生姓名: 学号: 指导教师: 完成日期:

目录 1 设计目的 0 2 设计任务内容 0 3 网络爬虫程序总体设计 0 4 网络爬虫程序详细设计 0 4.1 设计环境和目标分析 0 4.1.1 设计环境 0 4.1.2 目标分析 (1) 4.2 爬虫运行流程分析 (1) 4.3 控制模块详细设计 (2) 4.3 爬虫模块详细设计 (2) 4.3.1 URL管理器设计 (2) 4.3.2 网页下载器设计 (2) 4.3.3 网页解析器设计 (2) 4.4数据输出器详细设计 (3) 5 调试与测试 (3) 5.1 调试过程中遇到的问题 (3) 5.2测试数据及结果显示 (4) 6 课程设计心得与体会 (4) 7 参考文献 (5) 8 附录1 网络爬虫程序设计代码 (5) 9 附录2 网络爬虫爬取的数据文档 (8)

1 设计目的 本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《计算机网络》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1.巩固和加深学生对计算机网络基本知识的理解和掌握; 2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力; 3.提高学生进行技术总结和撰写说明书的能力。 2 设计任务内容 网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。 选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,界面适当美化。给出软件测试结果。 3 网络爬虫程序总体设计 在本爬虫程序中共有三个模块: 1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况 2、爬虫模块:包含三个小模块,URL管理器、网页下载器、网页解析器。 (1)URL管理器:对需要爬取的URL和已经爬取过的URL进行管理,可以从URL 管理器中取出一个待爬取的URL,传递给网页下载器。 (2)网页下载器:网页下载器将URL指定的网页下载下来,存储成一个字符串,传递给网页解析器。 (3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的数据,而且还可以解析出每一个网页指向其他网页的URL,这些URL被解析出来会补充进URL管理器 3、数据输出模块:存储爬取的数据 4 网络爬虫程序详细设计 4.1 设计环境和目标分析 4.1.1 设计环境

网络程序设计—ASP考试试题(A卷)答案[1]

《网络程序设计—ASP》考试试题1答案 一、单项选择题(本大题共15小题.每小题1分。共15分) 1.A 2. D 3. B 4. B 5. B 6. B 7. A 8.C 9.B 10.B 11.A 12.D 13.B 14.A 15.C 二、判断题(本大题10小题,每小题1.5分,共15分)。 16.ABCD 17.AD 18.AB 19. ABCD 20.CD 21. ABCD 22. BD 23. CD 24. ABCD 25. AB 三、程序填空题(本大题10小题,每空1.5分,共15分) 26. “11”、2、“11”、“11”27. ac 28. 3 29.2 30. 空(Empty)31. 空(Empty)32. "<p>" 33. &lt;p&gt; 34. 与intAge的值有关35.全部 四、名词解释(本大题5小题,每小题2分,共10分) 36.静态网页——所谓静态网页,就是说该网页文件里没有程序代码,只有HTML标记,这种网页的扩展名一般是.htm或.html。静态网页一经制成,内容就不会再变化,不管何时何人访问,显示的都是同样的内容,如果要修改内容,就必须修改源文件,然后重新上传到服务器上。 37.相对路径——所谓相对路径,就是以“/”或“\”开头的路径。 38.子程序——就是只执行程序而不返回值的程序模块。 39.会话——是指用户访问网站的过程;状态,就是指会话过程中的一些变量、设置等信息。 40.数据库——所谓数据库,就是按照一定数据模型组织、存储在一起的,能为多个用户共享的,与应用程序相对独立的、相互关联的数据集合。 五、简答题(本大题4小题,每小题4分,共20分) 41.什么是应用程序?为什么要建立应用程序? 答案:简单的说,添加了虚拟目录的文件夹就可以称为应用程序。建立应用程序后,多个网站之间就可以独立了,一些公共变量就不会混淆。 42.如果同时设置了背景颜色和背景图片,会出现什么情况? 答案:如果同时设置了背景颜色和背景图片,将只有背景图片起作用。 43.请简述四类运算符的优先级顺序。 答案:算术运算符>连接运算符>比较运算符>逻辑运算符。 44.某程序可以显示记录,但不能更新记录,请简述可能的原因。 答案:可能是没有对数据库文件设置相应的访问权限。(比如,去掉只读;对于Windows 2000、Windows XP 系统,如果安装时采用了NTFS文件系统,还要设置“Internet来宾帐户”可以完全控制该数据库文件。) 六、编程题(本大题2小题,第1小题15分,第二小题10分,共25分) 45.请编写程序段,随机产生一个0到9的整数。如果是偶数,则在页面上输出“生成的是偶数”,否则输出“生成的是奇数”。 程序清单: <% Dim s s=Int(10 * Rnd()) If (s Mod 2)=0 Then Response.Write "生成的是偶数" Else Response.Write "生成的是奇数"

程序设计基础实验指导书

说明 每个实验做完以后,按照实验报告模板格式完成相应的实验报告,存储为word 文档,最终提交的实验文档数量种类和命名原则如下例:(不按要求 者拒收) 目录结构图目录实验 1 内的文件种类和命名原则实验报告成绩将作为平时成绩的一部分计算到期末总成绩中。 实验报告严禁相互抄袭,一经发现抄袭和被抄袭者本次实验按零分计算!

实验1 C 的实验环境和C 语言的数据类型 1. 实验目的 ⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C 程序。 ⑵ 通过运行简单的C 程序,初步了解C 源程序的特点。 ⑶ 掌握C 语言数据类型, 熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷ 掌握不同的类型数据之间赋值的规律。 ⑸ 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(--)运算符的使用。 2. 实验内容和步骤 检查所用的计算机系统是否已安装了C 编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 3. 实验题目 输入下面的程序 # include "stdio.h" void main() { printf( "This is a c program.\n" ); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的 C 程序。 # include “ stdio.h ” void main() { int a,b,sum a=123; b=456; sum=a+b print( “ suism%d n” ,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改: ⑶ 若k,g 均为int 型变量, 则下列语句的输出为, : # include "stdio.h" void main() { int k, g; k=017; g=111;

《.NET程序设计》课程设计报告

《.NET程序设计》课程设计报告 班级:计算机1403 学号:1411640305 姓名:黄世增

一、实验名称 作者信息管理系统 二、实验目的 1.进一步掌握并加深“.NET程序设计”课程的基本知识,理解“.NET程序设计”课程中重点讲解的https://www.doczj.com/doc/4f9429692.html,技术在项目开发中的应用。 2.培养正确的程序设计思想,提高分析问题、解决问题的能力。 3.提高学生进行技术总结和撰写说明书的能力。 三、系统设计描述 实验设计内容: 本次实验设计的内容是使用https://www.doczj.com/doc/4f9429692.html,技术为某出版社设计并实现一个小型作者信息管理系统。出版社的工作人员登录该系统后,可以查看该社出版的各类书籍的作者的信息,并可以对作者信息进行各类查询,便于工作人员对作者信息进行管理。 系统数据库设计: 在SQL Server Express中为作者信息管理系统建立一个名为作者信息管理系统的数据库,并设计以下2张数据表: 1.系统管理员表 该表用来记录使用本系统的管理员的基本信息,包括管理员账户及密码。 【思考题】 (1)数据库中的一条记录中有若干个属性,若其中某一个属性(注

意是组)能唯一标识一条记录,该属性组就可以成为一个主键。 统管理员表中用户名应设为主键。 (2)用户名和密码都设为varchar字符型。 2.作者个人信息表 该表用来记录作者个人的基本信息,包括作者编号、姓名、联系地址、电话、email。 【思考题】 (1)表中作者编号应设为主键。 (2)表中作者ID、电话号码和Email为nchar字符串型,姓名和联系人地址为nvarchar字符串型。 设计好数据库的两个表后,分别在两个表中输入数据,如下图所示:

网络程序设计复习题(带答案)

网络程序设计复习题 1、为了实现网络的互联,互联网技术必须保证使用不同硬件结构的计算机能够进行通信 适用于多种不同的操作系统、能够使用多种分组交换网络硬件 2、因特网体系结构委员会的英文简称是ICCB 3、协议的实现要落实到一个个具体的硬件模块和软件模块上,在网络中将这些实现特定功能的模块称为实体 4、连接控制、流控制、报文分段等属于传输层功能 5、IP数据报协议标识字段指明了IP数据报封装的协议,当标识字段为 6 时 表示封装的是TCP协议 6、ICMP报文不包括地址解析报文 7、套接字是指IP地址和端口号的组合。 8、SOCKET编程中的全相关是指源端口号、目的端口号、源IP、目的IP、协议 9、IP分组的中的TTL值描述,每经过一个路由器,它的值会减1是正确的 10、TELNET通过TCP/IP协议模块在客户机和远程登录服务器之间建立一个TCP 11、以下提供可靠服务不是UDP协议的特性 12、虚拟局域网通常采用交换机端口号、MAC地址、网络层地址或IP广播组地 址定义 13、办公自动化服务不是网络操作系统提供的服务 14、分析IP数据报所携带的TCP内容不是IP路由器应具备的主要功能 15、java当中网络编程的接口是在https://www.doczj.com/doc/4f9429692.html,包当中提供的。 16、会话的建立、维护和交互过程中的同步等属于会话层功能 17、在网络层,IP模块根据IP数据报首部中的协议值决定将数据报中的数据交 给哪一个模块去处理,当协议值为17,应将数据交给UDP模块处理 18、ARP请求帧在物理网络中是以广播方式发送的 19、ICMP在重组定时器超时情况下会产生数据报超时报告。 20、回应请求与应答报文的目的是对网络进行诊断和测试,使用它可以了解 设备的可达性 21、网络的功能主要由各层的协议来完成,互联网技术经过多年的发展形成了现在的TCP/IP协议。 22、为了保证网络的各个功能的相对独立性,以及便于实现和维护,通常将协议划分为多个子协议,并且让这些协议保持一种层次结构,子协议的集合通常称为协议簇。 23、IP协议是TCP/IP协议簇中的核心协议,提供数据传输的最基本服务,是实现网络互联的基本协议。 24、ICMP协议将请求转变为ICMP报文,然后将报文封装在IP协议中进行发送。包含ICMP报文的IP数据报首部的协议字段为1。

Web应用程序设计综合实验报告材料

Web应用程序设计综合实验报告题目:网上购物系统 学生姓名: XXX 学号: XXXXXXXXXXX 院(系): XXXXXXX 专业: XXXXXXXXXX 指导教师: XXXXXXXXXX 2014 年 7月 6 日

1、选题背景 随着计算机技术的发展和网络人口的增加,网络世界也越来越广播,也越来越来越丰富,网上商城已经成为网上购物的一股潮流。互联网的跨地域性和可交互性使其在与传统媒体行业和传统贸易行业的竞争中是具有不可抗拒的优势。在忙碌丰富的社会生活中,人们开始追求足不出户就能买到心仪的商品,是越来越多的上网爱好者实现购物的一种方式,对于企业来说,网络交易能大大提高交易速度、节约成本。在这种形势下,传统的依靠管理人员人工传递信息和数据的管理方式就无法满足企业日益增长的业务需求,因而开发了这样一个具有前台后台的网上商城系统,以满足购物者和企业的需求。 因此这次毕业设计题目就以目前现有的网上商城系统为研究对象,研究一般的网上商城的业务流程,猜测其各个功能模块及其组合、连接方式,并分析其具体的实现方式,最后使用Java加web服务器和数据库完成一个网上商城系统的主要功能模块。通过这样一个设计,可以提高自己Java编程的水准,也练习了怎样构建一个完整的系统,从系统的需求分析到设计,直至编码、测试并运行,熟悉并掌握一个完整的Web开发流程,为今后工作打下基础。 1.1设计任务 从以下几个方面实现网络商城的基本功能: 1、用户部分: (1)用户的登录和注册,用户必须注册才能购物,注册时系统会对注册信息进行验证,进入系统或是结账时,用户可以进行登录,登录时,如果密码错误,系统会进行验证并提示错误。 (2)浏览商品,实现用户可以在网络商店中随意浏览商品,商品按类别分类,方便用户查找不同类别的商品 (3)购物车管理,能实现添加商品、删除商品、更新商品的功能。 (4)生成订单,查看购物车后单击下一步则生成订单信息表,一旦提交订单,则购物车就不能被改变。 2、管理员部分:

java网络编程课程设计终极版

枣庄学院 信息科学与工程学院课程设计任务书题目:基于UDP的聊天系统 小组成员:谭德鹏、崔浩、王珂、李洪康 成员学号:201212120221、201212120202 201212120224、201212120209 专业班级:网络工程、2012级本2班 课程:Java网络编程 指导教师:吕加国职称:副教授 完成时间:2015年4 月----2015年6 月 枣庄学院信息科学与工程学院制 2015年4 月15日

课程设计任务书及成绩评定 课程设计的任务和具体要求 任务:运用JDK和Eclipse开发环境,完成一个聊天或通讯系统的设计,初步掌握利用Java语言和JDK开发网络通信程序的基本方法。 具体要求: 1、需求分析:根据自己的选题,绘制用例图、功能结构图等。 2、系统设计:合理划分系统的功能结构,写清楚各个功能模块之间的关系。 3、详细设计:根据自己选题的业务逻辑,完成系统的界面设计、代码设计。 4、设计小结:总结课程设计的过程、体会及建议。 6、其他:参考文献等。 指导教师签字:吕加国日期: 2015-11-10 指导教师评语 成绩:____________指导教师签字:日期: 2015-1-10

课程设计所需软件、硬件等 ?硬件环境:Iterl(R) Core(TM)2 Duo CPU,主频2.31GHz;内存3G; 硬盘320G以上;1024×768显示分辨率 ?软件环境: JDK XXX、Eclipse XXX 课程设计进度计划 起至日期工作内容备注 6月10日~6月20日 我们小组根据所选的题目以及在这学期所学的软件工程的知识,严格按照软件生产的流程(使用的是瀑布模型)来完成此作品,小组成员各职其所,都完成了预期所做的工作! 参考文献、资料索引 序号文献、资料名称编著者出版单位[1]《Java网络编程基础》(第2版).作者:朱喜福戴舒樽王晓勇

《网络程序设计》期末考试试题.doc

学习中心_________ 姓名_____________ 学号 西安电子科技大学网络与继续教育学院 2019学年上学期 《网络程序设计》期末考试试题 (综合大作业) 考试说明: 1、大作业试题于2019年4月25日公布,2019年4月26日至2019年5月12日在线上传大作业答卷(最多上传10张图片); 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须用《西安电子科技大学网络与继续教育学院综合大作业答题纸》手写完成,要求字迹工整、卷面干净; 4、文字描述部分需手写,系统界面以图片形式保存,且总页面不超过10页,上传考试系统。 一、(30分/题,共1个)以access数据库作为后台数据库,完成某学校教材信息的录入、修改和查询。要求所有教材信息必须存储在数据库中,最终提交作业报告,内容包括题目内容,题目总体分析,实现方案,数据库设计,功能模块设计,网页结构设计,运行结果,主要源程序。 总体分析 根据题目要求选择了使用桌面应用程序实现,而没有选择web实现。所以选择java作为开发语言,使用java提供的swing组件实现交互界面。题目要求使用access做为后台数据库,java提供了JDBC-ODBC驱动连接access数据库。

实现方案 使用access数据库(JDBC-ODBC连接) 使用java语言编程(JDK1.6) 使用swing实现交互界面 使用Netbeans7.0 IDE 数据库设计 表结构: 表:book 字段类型说明Id 长整型图书编号 book_name 字符串书名 author 字符串作者 publisher 字符串出版社 publish_date 时间出版时间 功能模块设计 程序中实现了图书信息的查询、添加、修改、删除。 1、查询模块 可以显示所有的图书信息, 可以按条件查询,可分别通过书名、作者、出版社进行查询相关图书信息。 2、添加模块 添加新的图书信息到数据库中 3、修改模块 对数据库中存储的图书信息进行修改。 4、删除模块 删除数据库中的图书信息。 详细设计 代码结构:

《网站编程技术》上机实验指导书

南阳理工学院 《网站编程技术》上机实验指导书 (2013版) 软件学院·网络工程教研室 2013.03

目录 实验1 PHP基础 (1) 实验2 PHP表达式 (3) 实验3 PHP流程控制 (5) 实验4 PHP数组 (9) 实验5 PHP数据采集 (11) 实验6 PHP函数 (15) 实验7基于Mysql的PHP管理系统数据库 (17) 实验8 PHP会话控制 (21) 实验9 字符串处理 (25) 实验10 PHP综合应用 (28)

实验1 PHP基础 实验实验目的和要求: 1.掌握WAMP或LAMP等PHP环境的部署; 2.掌握最基本的PHP程序的结构; 3.掌握基本的输出语句以及PHP代码和HTML代码的混合编写。 实验内容: 1、下载并安装WampServer,构建PHP运行环境; 2、构建PHP开发环境,编写并运行一个PHP程序,最终在屏幕上显示“hello world”以及服务器的系统时钟。要求,为程序的每一行都加上必要的注释说明。 3、编写register.html,此页面包含一个简单的表单,用户可以输入用户名、密码、确认密码等信息并可以提交表单。(选作) 4、编写register.php,用来处理register.html中用户提交的数据,把用户输入的信息输出到网页中。(选作) 实验预作记录: 1、下载并安装wampserver软件 2、配置php的时区,在php.ini文件中时区配置为date.timezone=Asia/ShangHai,然后重新启动所有的服务。 3、在WWW目录中新建一个目录1,在目录1中新建一个文件名为helloword.php 的php文件。注意PHP程序的输写方法,开头需要是<?php ,结束是?>。 4、在屏幕上输出hello world !,在helloworld文件中写的php语句,对这个语句进行注释。 #在浏览器上显示服务器的系统时钟 echo date("Y年m月d日H时i分s秒"); 5、在文件中写php语句将服务器的时钟显示在屏幕上,对这个语句进行注释。#在浏览器上显示服务器的系统时钟 echo date("Y年m月d日H时i分s秒"); 6、在浏览器中输入http://localhost进行测试,正常情况下网页中应该出现“helloworld”等内容。

《网络应用程序设计》课程设计报告书

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级:0991132 学号:1099113202 姓名:赵燃 指导教师:宋毅、王家宁、徐红梅、姚璐 周期:一周 成绩: 2011年12 月23 日

一、课程设计的目的与要求( (一)课程设计目的与任务 (1)课程设计的目的:《网络高级程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用vc++语言进行面向对象设计的基本方法。提高运用面向对象知识分析实际问题、解决实际问题的能力。 (2)课程设计任务:局域网多人聊天室 该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。 客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。 服务器端程序:可将消息发送到客户端和接受客户端发送来的消息。 (二)题目要求 该系统要求完成聊天室的全过程,包括客户端和服务器两大部分的编程及其连接。服务器端聊天程序负责接收和发送来自客户端的聊天信息,客户端聊天程序负责建立和维护与服务器端的连接,想服务器发送本客户的聊天内容。系统采用VISUAL C++语言程序设计编程实现。并且按要求编写程序设计报告书,能正确编写分析、设计、编码、测试等技术文档。 二、设计正文 1系统分析 (1)服务器聊天程序要在待定的端口上等待来自聊天客户的连接请求,并且需要维护一个客户连接表,以记录所有成功的连接。 (2)服务器聊天程序要及时接受从各个聊天客户发送过来的信息,然后把这些信息转发到一个或多个客户连接。对于公共聊天室,服务器将把接受到的信息除源端外的所有客户发送过去。 (3)服务器还要监控这些连接的状态。在客户主动离开或发生故障时从列表删除相应的表项,并及时更新连接表。 2功能详细描述及框图 用户首先启动客户端,登陆服务器并向服务器发送信息,启动服务器,服务器等待客户要求并向客户反馈在线用户信息,用户向服务器发送信息,服务器处理用户的数据,然后用户开始聊天,客户端的聊天分为对群聊天和私聊的信息,该信息应通过程序控制分别进行处理。

《网络程序设计》期末考试复习题及参考答案

网络程序设计复习题 (课程代码 252284) 一.选择题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。 A. java B. class C. html D. exe 2、设int型变量x = 1 , y = 2 , z = 3,则表达式y+=z--/x++ 的值是( )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 6、下列浏览器中,可以运行HTML中的Applet,而忽略其他HTML命令的是( )。 A. Netscape 3.0 B. Internet Explorer5.0 C. Hot Java D. Appletviewer 7、以下哪一个不是JA V A的标准数据流( )。 A. 标准输出数据流 B. 标准输入数据流 C. 标准错误数据流 D. 标准运算数据流 8、下面声明数组的写法错误()。 A. int a[ ]; B: int[ ] a; C: int[ ][ ] a[3][ ]; D; int[ ][ ] a[ ][3]; 9: 设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char 型变量,则表达式x+y*a/x+b/y+c的值为( )类型。

实验七-网络程序设计综合实验汇总

网络程序设计 实验报告 实验名称:winsock 编程接口实验实验类型:设计型 指导教师:贾浩 专业班级:信安1204 姓名:马灿 学号:20123252 电子邮件: 实验地点:东6 E307 实验日期:

实验成绩:__________________________

实验七网络程序设计综合实验 摘要:本课程设计包含了文件传输协议的简单设计与实现。文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP网络体系结构之上,使用socket编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),利用了已有网络环境设计并实现简单应用层协议。本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。 关键词:SOCKET编程,FTPclient/server程序 一.问题描述及设计思路 1.1 问题描述 服务器端: 1.指定一个目录作为FTP目录(之后所有的文件操作均在此目录下进行) 2.接收客户端的命令请求并提供相应的服务。 客户端:完成与FTP用户的人机界面,以命令的方式向服务器请求服务,主要的命令有:1.CONNECTIP地址端口号 2.指定FTP服务器的IP地址和端口号,连接到服务器。响应:连接成功/失败。 3.LOGIN用户名 4.用户登录(假设在服务器端有用户管理功能)

5.响应:若用户不存在,提示“无此用户”;若用户存在,提示“密码:”;用户输入密码后,若正确提示“登录成功”;若不成功,提示“密码错误”。6.3.DIR 7.显示FTP服务器的FTP目录的文件列表(假设无子目录) 8.响应:目录列表(只要文件名即可)。 9.4.GET文件名 10.将FTP目录下的文件下载到本地,支持断点续传 11.响应:传送成功/失败/无此文件。 12.5.PUT文件名 13.将本地文件上传到FTP目录,支持断点续传 14.响应:传送成功/失败/无此文件。 15.6.HELP(客户端和服务器端均有该功能) 16.实验环境本次实验采用MFC工程工程采用MFC对话框界面工程名称为MyServer和FTPSOCKET。 17.详细设计过程 1.2 设计思路 1. FTP协议基础 FTP 是TCP/IP 协议组中的协议之一,该协议是Internet文件传送的基础,它由一系列规格说明文档组成。目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上或从自己计算机中拷贝至远程计算机上。在TCP/IP协议中FTP标准命令TCP端口号为21,Port

C语言程序设计期末考试复习题及复习资料

C语言考试期末考试复习题及答案 一、选择题 (1) 一个C语言程序总是从(C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 (2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A) ‘x’&&’y’B) x||y+z&&y-z C) x<=y D) !((x

网络编程课程设计

课程设计说明书 课程名称:Windows网络编程 设计题目:基于JA V A网络聊天室设计 学院:计算机科学与信息工程学院 专业班级:网络工程12级 指导教师: 小组成员: 2015年6月 目录 摘要 (1) 引言: (1) 1.需求分析 (1) 1.1需求分析 (1) 1.2系统简介 (2) 2. 系统开发技术 (2)

2.1 JAVA网络编程技术 (2) 2.2 Socket套接字 (3) 2.3 TCP三次握手 (3) 3. 系统总框图与功能分析 (4) 3.1系统总框图 (4) 3.2系统功能模块分析 (5) 4. 系统模块代码设计与分析 (6) 4.1系统流程分析 (6) 4.2类的设计与分析 (7) 4.3客户端模块部分代码 (7) 4.4服务器端模块部分代码: (9) 5.系统测试 (11) 6. 总结 (13) 7.成员分工 (13) 参考文献: (14)

网络聊天室 摘要:随着我国经济发展和网络的普及,网络技术也越来越多地被应用于日常工作之中。在程序设计领域,面向对象的编程技术正在逐步代替面向过程的程序设计技术,成为计算机应用设计开发的主流,对于人与人之间通过网络的沟通和交流,聊天室是人们最常见、最直接的交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型应用。本文所介绍的网络聊天系统是基于JAVA应用程序开发设计的,其主要特性是简单、面向对象、分布式、解释执行、安全、体系结构中立、可移植、高性能、多线程以及动态性。 关键词:局域网、聊天室、JAVA、Socket、WindowsSocket 引言:目前,基于TCP/IP协议的网络得到了普及和飞速的发展,Windows下的网络程序越来越显得重要。利用TCP/IP协议提供的编程接口———Socket(套接字)可以开发出TCP/IP应用程序。正确的使用WindowsSocket,就可使得不同地址下的进程得以在Windows 环境下顺利进行各种网络通信,因此研究WinSock更有意义。而基于TCP/IP协议网络环境下的应用程序是通过客户机/服务器(C/S)作用方式模式在网络(应用)编程界面实现的。本次实验采用java语言设计一个基于C/S模式的TCP网络通讯程序。实现客户端与服务器端之间的数据传输。 1.需求分析 1.1需求分析 根据当前网络的需求,网络聊天越来越受到各种网民所青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。而小组成员也都学习过JAVA 语言,对网络编程也较有兴趣,为了更好的考验自己对JAVA语言的掌握程度,小组成

网络程序设计试题A卷- 最新版本

西安电子科技大学《网络程序设计》试题 (2013年A卷) 考试时间120 分钟试卷编号 班级学号姓名任课老师姓名 一、单选题(10×2分=20分) 1.以下字段中,不属于IP首部的是 A. 协议类型 B. 生存时间 C. 源IP地址 D. 目的端口号 2.以下函数中,不会产生阻塞的是 A. send( ) B. sendto( ) C. connect( ) D. listen( ) 3.进程A是进程B的父进程,当A正在运行时B退出,下列叙述中正确的是 A.进程A也将退出 B.进程A将收到SIGCHLD信号 D.进程A将收到SIGKILL信号 D.进程A会成为僵尸进程

4.整数0x12345678在little-endian字节序主机内存中的存储形式是_________(注:内存由低到高) A. 12 34 56 78 B. 78 56 34 12 C. 34 12 78 56 D. 56 78 12 34 5.使用信号驱动I/O时哪一个不是必须要执行的操作 A.为信号SIGIO关联一个信号处理函数 B.设置套接字为非阻塞模式 C.设置套接字所有者 D.允许套接字进行信号驱动I/O 6.对使用UDP协议的套接字调用connect函数,下面叙述中正确的是A.connect函数将阻塞 B.connect函数将导致3次握手操作 C.connect函数记录对方的IP地址和端口后立刻返回 D.不能对使用UDP协议的套接字描述符调用connect函数 7.对函数调用send(sockfd,“12xyz”,5,MSG_OOB)的描述中正确的是 A.只有字符z被写入发送缓冲区 B.只有字符串12xy被写入发送缓冲区 C.字符串12xyz中的每个字符都将作为带外数据发送 D.TCP协议发送的下一个报文段中URG标志将置位 8.在给网络地址附值时,程序如果使用“INADDR_ANY”,则表明A.对于只有一个IP地址的主机,使用“127.0.0.1”地址 B.对于有多个网卡的主机,使用其中任意一个IP地址 C.对于有多个网卡的主机,表示所有IP地址,并处理所有地址的请求D.以上均不对

互联网络程序设计实验实验

实验5定时器【实验原理】 timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景。timerfd是linux 内核2.6.25版本中加入的接口。 timerfd、eventfd、signalfd配合epoll使用,可以构造出一个零轮询的程序,但程序没有处理的事件时,程序是被阻塞的。这样的话在某些移动设备上程序更省电。 clock_gettime函数可以获取系统时钟,精确到纳秒。需要在编译时指定库:-lrt。可以获取两种类型事件: CLOCK_REALTIME:相对时间,从1970.1.1到目前的时间。更改系统时间会更改获取的值。也就是,它以系统时间为坐标。 CLOCK_MONOTONIC:与CLOCK_REALTIME相反,它是以绝对时间为准,获取的时间为系统重启到现在的时间,更改系统时间对齐没有影响。 timerfd_create:生成一个定时器对象,返回与之关联的文件描述符。接收两个入参,一个是clockid,填写CLOCK_REALTIME或者CLOCK_MONOTONIC,参数意义同上。第二个可以传递控制标志:TFD_NONBLOCK(非阻塞),TFD_CLOEXEC(同O_CLOEXEC)注:timerfd的进度要比usleep要高。 timerfd_settime:能够启动和停止定时器;可以设置第二个参数:flags,0表示是相对定时器,TFD_TIMER_ABSTIME表示是绝对定时器。 第三个参数设置超时时间,如果为0则表示停止定时器。定时器设置超时方法: 1、设置超时时间是需要调用clock_gettime获取当前时间,如果是绝对定时器,那么需要获取CLOCK_REALTIME,在加上要超时的时间。如果是相对定时器,要获取CLOCK_MONOTONIC时间。 2、数据结构: struct timespec { time_t tv_sec; /* Seconds */ long tv_nsec; /* Nanoseconds */ }; struct itimerspec { struct timespec it_interval; /* Interval for periodic timer */ struct timespec it_value; /* Initial expiration */

网络编程试卷(含答案)

一.选择题(30分,每题3分) 1.以下哪个是TCP/IP模型(B) A.应用层,表示层,网络层,物理层; B.应用层,传输层,网络层,链路层C.应用层,传输层,链路层,物理层 D.应用层,传输层,网络层,物理层 的设计架构不包含以下哪一种( C) A.集中式架构 B.完全分布式架构 C.点对点架构 D.混合型架构 请求方法不包括如下哪一种( B) A.Post C.Get 的作用不包括(C) A.文件共享; B. 通过应用程序直接或间接使用远程主机; C.提供一致性的协议,避免用户在不同主机上有相同的操作方式; D. 提供可靠及有效率的数据传输; 与POP3的端口分别是:( B) A.25,75 B. 25,110 C.21,75 D. 21,110 地址是,子网掩码是,则其网段的广播地址是(C) A.的特点不包括如下哪一点(C) A.面向连接 B.全双工数据传送 C.传输速度快 D.面向字节流 8.关于线程哪一点是对的。(D) A.任何一个C#程序都有一个默认的线程,该线程是后台线程; B. 每个进程都有一个线程池。线程池默认大小有35个线程; C.线程池中的线程都是前台线程; D. C#中常用的线程同步的语句是lock语句; 9.在Internet中用一个三元组可以在全局中唯一标识一个应用层进程,这不包括下列哪一种( A ) A.网络层协议地址 C.端口号 D.传输层协议 IP协议簇中,哪一种是网络层协议( B ) A.TCP C.SMTP

二.判断题(15分,每题1分,用T表示对,F表示错) 1.端口的分配地址是1-65535,全局分配是1-1023,本地分配是1024-65535 (F) 2.线程池中既有后台线程也有前台线程,某进程的所有前台线程都终止了,后台进程也自 然终止。(F) 3.在SMTP中,电子邮件由信封、首部和正文3部分组成。(T) 4.数字签名是私钥加密,公钥解密。(T) 5.ESMTP与SMTP的区别是发送邮件时要求用户身份验证。(T) 6.HTTP的流水线方式是指客户在收到前一个响应后才能发出下一个请求。(F) 7.HTTP(Hypertext Transfer Protocol),超文本传输协议,目前的版本是。(F) 8.NAT功能是只能用硬件来实现(F) 9.IP地址有A,B,C,D,E五类(F) 10.UDP不需要连接,速度比TCP快;(T) 11.UDP传输的数据无消息边界;(F) 12.Socket类比位于底层TcpClient类提供了更高层次的抽象,它们封装TCP套接字的创建, 不需要处理连接的细节。(F) 13.监听套接字与新创建的套接字所使用的端口不同。(F) 14.本机回送地址是(T) 15.Socket套接字的Accept()方法若检测到监听套接字的缓冲区是空的话,立刻返回(F)三.简答题(55分) 1.什么是端口,网络通信中为什么要引入端口(6分) 答: 端口是TCP/IP协议簇中,应用层进程与传输层协议实体间的通信接口。端口是操作系统可分配的一种资源;应用程序(进程)通过系统调用与某端口绑定(binding)后,传输层传给该端口的数据都被相应进程接收,相应进程发给传输层的数据都通过该端口输出。 1.在网络通信过程中,需要唯一识别通信两端的端点,即运行于某机器中的应用程序。如 果没有引入端口,则只能通过进程号进行识别。进程号是系统动态分配的,不同的系统

相关主题
文本预览
相关文档 最新文档