文档库 最新最全的文档下载
当前位置:文档库 › 网络程序设计

网络程序设计

网络程序设计

姓名:

学号:

班级:

背景知识

本程序为基于C/S模式的网络聊天程序,采用TCP/IP协议,根据“WinSockets规范“编写,在MFC的框架下通过利用SOCKET来实现的。MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类,编程者只需要通过预定义的接口把具体应用程序特有的东西填入这个轮廓,就能建立windows操作系统下的应用程序。SOCKET通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。

该聊天程序主要分成两部分:客户端部分和服务器部分。程序运行时,服务器端程序启动,监听套接字便开始监听连接请求。服务器端开启后,客户端再进行登录,客户端登录以后,就可以连接服务器然后进行会话。当服务器端收到连接请求时,调用函数生成会话套接字,用于和客户端通信,并将这个套接字加入到套接字链表中,监听套接字继续监听连接请求。客户端可以通过用户列表和指定的用户通信,服务器这时起到消息转发的作用。消息在客户端和服务器端共同显示。另外,可以通过服务器与客户端的通信更新客户端的用户列表。

主要函数描述

服务器端方面:

SOCKADDR_IN Serveraddr; //用于保存服务器的地址信息

SOCKADDR_IN clientaddr; //用于接受客户端的地址信息

SOCKET m_socket; //连接服务器的SOCKET

SOCKET SocketAccept[20]; //用于接收客户端的连接

userInformation userIform[20]; //用于保存用户的信息

BOOL InitSocket(); //初始化SOCKET的函数

afx_msg void OnSock(WPARAM,LPARAM); //ACCEPT事件的消息响应响应函数

afx_msg void OnServer(WPARAM wParam, LPARAM lParam);//receive事件的消

息响应

/////////////////////////////////////////////////////接受连接请求

struct sendInformation//存储用户所发消息的类型及用户的的信息

{

i nt type;

c har name[30];

c har msg[300];

};

struct userInformation//获取客户端的IP地址

{

C String username;

C String userip;

};

/*在MFC中,用消息映射宏ON_MESSAGE将MSG结构包装起来,

把消息和消息处理函数一一对应起来。

ON_MESSAGE宏的原型:ON_MESSAGE(message,memberFxn)

// message:消息标识符,memberFxn:消息处理函数。

也就是message→memberFxn //这是一一对应的。用ON_MESSAGE宏来进行对应。*/

ON_MESSAGE(WM_SERVER_ACCEPT, OnServerAccept)

ON_MESSAGE(WM_SOCKET_READ, OnServerreadorclose)

////////////下为服务器启动函数////////////////////////

BOOL CChatseDlg::InitSocket()

{

m_socket = socket(PF_INET, SOCK_STREAM, 0);//创建套接字

i f (m_socket == INVALID_SOCKET)

{

MessageBox("套接字创建失败!!");

return 0;

}

m yaddr.sin_family = AF_INET;

m yaddr.sin_addr.s_addr = htonl(INADDR_ANY);//ip地址

m yaddr.sin_port = htons(4009);//端口

//我们在程式中要求Winsock 系统知道Client 要来连接时,送一个//ASYNC_EVENT 的讯息到程式中hwnd 这个视窗;

W SAAsyncSelect(m_socket, m_hWnd, WM_SERVER_ACCEPT, FD_ACCEPT);

i nt x=bind(m_socket,(LPSOCKADDR)&myaddr, sizeof(myaddr))== SOCKET_ERROR;//判//断套接字是否创建成功

i f(x)

{

MessageBox("绑定失败!");

return 0;

}

i f(listen(m_socket, 30) == SOCKET_ERROR)

{

MessageBox("侦听失败!");

return 0;

}

r eturn TRUE;

}

void CChatseDlg::OnSend() //启动服务器

{

// TODO: Add your control notification handler code here

I nitSocket();

m_msg="服务器已启动!";

U pdateData(FALSE);

}

////这是异步选择模型中有客户端连接时的响应函数。wParam和lParam是授受消息的两个附加参数

///其中前者是套接字类型,后者是系统消息的类型,这个方法是重写CSocket中的回调函数,用来通知服务器端处理连接请求队列里的请求。

LRESULT CChatseDlg::OnServerAccept(WPARAM wParam, LPARAM lParam)

{

int nLength = sizeof(SOCKADDR);//结构体的长度

i nt i;

i f (WSAGETSELECTEVENT(lParam) == FD_ACCEPT)

{

for(i=0;(i<30)&&(SocketAccept[i]!=INVALID_SOCKET);i++) ;//将创建的套接字放入//列表

if(i==30) return 0L;

SocketAccept[i]=accept(m_socket,(LPSOCKADDR)&clientaddr, (LPINT)&nLength);

userIform[i].userip=inet_ntoa(clientaddr.sin_addr);//接受一个in_addr 返回一个点分十进制表示的格式的ip地址

W SAAsyncSelect(SocketAccept[i],m_hWnd,WM_SOCKET_READ,FD_READ|FD_CLOSE); }

r eturn 0L;

}

LRESULT CChatseDlg::OnServerreadorclose(WPARAM wParam, LPARAM lParam)

{

i f (WSAGETSELECTEVENT(lParam) == FD_READ)//判断接收到的系统消息的类型

{

CString s;

int i;

for(i=0;(i<30)&&(SocketAccept[i]!=wParam);i++)

{

}

if(i==30) return 0L;

int BRead;

sendInformation info;

BRead=recv(SocketAccept[i], (char*)&info,sizeof(info), 0);

if (BRead == SOCKET_ERROR)

MessageBox("接收到一个错误信息. ");

switch(info.type)//判断接收到的套接字的类型

{

case 1:

int j;

for(j=0;j<30;j++)

{

if(SocketAccept[j]!=INVALID_SOCKET&&j!=i)

send(SocketAccept[j], (char*)&info,sizeof(info), 0);

}

break;

case 2: //单播

case 7:

int k;

for(k=0;(k<30)&&(userIform[k].username!=https://www.wendangku.net/doc/875524982.html,);k++)

{

}

send(SocketAccept[k], (char*)&info,sizeof(info), 0);

break;

case 0://进入聊天室

CTime t=CTime::GetCurrentTime();

CString strTime="(%y-%m-%d %H:%M:%S)";

strTime=t.Format(strTime);

userIform[i].username=https://www.wendangku.net/doc/875524982.html,;

s=https://www.wendangku.net/doc/875524982.html,;

s=strTime+s+"进入聊天室";

LPCTSTR pq1=s;

memcpy(info.msg,pq1,s.GetLength()+1);

int j1;

for(j1=0;j1<30;j1++)

{

if(SocketAccept[j1]!=INVALID_SOCKET)

{

send(SocketAccept[j1], (char*)&info,sizeof(info), 0);

}

}

int n;

for(n=0;n<30;n++)

{ if((userIform[n].username!="")&&(n!=i))

{

sendInformation namelist;

namelist.type=0;

LPCTSTR nlist=userIform[n].username;

CString nli;

nli="";

LPCTSTR nlis=nli;

memcpy(https://www.wendangku.net/doc/875524982.html,,nlist,userIform[n].username.GetLength()+1);

memcpy(namelist.msg,nlis,nli.GetLength()+1);

send(SocketAccept[i], (char*)&namelist,sizeof(namelist), 0);

}

}

m_msg=m_msg+"\r\n"+strTime+"用户"+userIform[i].username+"由ip"+userIform[i].userip+"进入服务器";

UpdateData(FALSE);

break;

}

}

i f (WSAGETSELECTEVENT(lParam) == FD_CLOSE)//退出聊天室

{

CTime t=CTime::GetCurrentTime();

CString strTime="(%y-%m-%d %H:%M:%S)";

strTime=t.Format(strTime);

int i;

for(i=0;(i<30)&&(SocketAccept[i]!=wParam);i++) ;

closesocket(SocketAccept[i]);

SocketAccept[i] = INVALID_SOCKET;

sendInformation closeinfo,closeinfo1;

closeinfo.type=1;

closeinfo1.type=3;

CString sc;

sc= strTime+userIform[i].username+"退出聊天室";

LPCTSTR pc=sc;

LPCTSTR pcname=userIform[i].username;

memcpy(closeinfo.msg,pc,sc.GetLength()+1);

memcpy(https://www.wendangku.net/doc/875524982.html,,pcname,userIform[i].username.GetLength()+1);

int jc;

for(jc=0;jc<30;jc++)

{

if(SocketAccept[jc]!=INVALID_SOCKET)

{send(SocketAccept[jc],(char*)&closeinfo,sizeof(closeinfo), 0);

send(SocketAccept[jc],(char*)&closeinfo1,sizeof(closeinfo1),0);

}

}

m_msg=m_msg+"\r\n"+strTime+"用户"+userIform[i].username+"由ip"+userIform[i].userip+"退出服务器";

userIform[i].userip="";

userIform[i].username="";

UpdateData(FALSE);

}

C Edit *pEdit;

p Edit=(CEdit *)GetDlgItem(IDC_EDIT1);

i nt i=pEdit->GetLineCount();

p Edit->LineScroll(i,0);

r eturn 0L;

}void CChatseDlg::OnTimer(UINT nIDEvent)

{// TODO: Add your message handler code here and/or call default

C Dialog::OnTimer(nIDEvent);

}

客户端方面:

CString m_name; //用户的登录名字

SOCKADDR_IN ServerAddr; //用户存储客户端的地址信息

void ConnectServer(); //连接服务器的函数

SOCKET ClientSocket; //用于连接服务器的SOCKET

void SendMsg(int type, CString name, CString msg);//传送信息函数

afx_msg void OnRead(WPARAM wParam, LPARAM lParam);//消息响应函数

///////////////////连接到服务器///////////////////////////////////////////////

void CChatDlg::connectServer()

{

login logindlg;

int Resp=logindlg.DoModal();

unsigned long serverAddr;

//sockaddr_in sin;

if (Resp == IDOK)

{

clientsock=socket(PF_INET,SOCK_STREAM,0);

if (clientsock == INVALID_SOCKET)

{

MessageBox("套接字创建失败!!");

CChatDlg::OnCancel();

}

else

{

serverAddr=inet_addr(logindlg.m_ip);//字符型服务器地址

m_name=logindlg.m_name;

myAddr.sin_family=AF_INET;

myAddr.sin_addr.s_addr=serverAddr;

myAddr.sin_port=htons(4009);

int nConnect=connect(clientsock, (LPSOCKADDR)&myAddr, sizeof(struct sockaddr));

WSAAsyncSelect(clientsock,m_hWnd,WM_SOCKET_READ,FD_READ);//

判断//要发送的系统消息类型

if(nConnect== -1)

{

MessageBox("连接服务器发生错误!",NULL,MB_OK);

CDialog::OnCancel();

}

else

{

MessageBox("连接服务器成功!",NULL,MB_OK);

infoClient infoCli;

infoCli.type=0;

memcpy(https://www.wendangku.net/doc/875524982.html,,(LPCTSTR)m_name,m_name.GetLength()+1);

//发送用户信息到服务器

int nCharSend=send(clientsock,(char*)&infoCli,sizeof(infoCli),0);

if(nCharSend==SOCKET_ERROR)

{

MessageBox("发送用户信息时出错!",NULL,MB_OK);

}

}

}

if (Resp == IDCANCEL)

{

CDialog::OnCancel();

}

}

m_strCombo = "大家";

UpdateData(FALSE);

}

////////异步选择模型中接受读准备好的通知对应的响应函数

LRESULT CChatDlg::OnRead(WPARAM wParam, LPARAM lParam)

{

int BReads;

infoClient rendInfo;

BReads = recv(clientsock, (char*)&rendInfo, sizeof(rendInfo), 0);

if (BReads == SOCKET_ERROR)

{

MessageBox("接收信息出错!");

}

switch(rendInfo.type)//判断接收到的套接字类型

{

case 0:

m_comboBox.AddString(https://www.wendangku.net/doc/875524982.html,);

m_listBox.AddString(https://www.wendangku.net/doc/875524982.html,);

m_read=m_read+"\r\n"+rendInfo.msg;

UpdateData(FALSE);

break;

case 1:

m_read=m_read+"\r\n"+rendInfo.msg;

UpdateData(FALSE);

break;

case 2:

m_read=m_read+"\r\n"+rendInfo.msg;

UpdateData(FALSE);

break;

case 3:

m_comboBox.DeleteString(m_comboBox.FindString(1,https://www.wendangku.net/doc/875524982.html,));

m_listBox.DeleteString(m_listBox.FindString(1,https://www.wendangku.net/doc/875524982.html,));

break;

}

CEdit *pEdit;

pEdit=(CEdit *)GetDlgItem(IDC_EDIT1);

int i=pEdit->GetLineCount();

pEdit->LineScroll(i,0);

return 0L;

}

void CChatDlg::SendMsg(int type, CString name, CString msg)//发送消息的响应函数{

infoClient info;

info.type=type;

memcpy(https://www.wendangku.net/doc/875524982.html,,name,name.GetLength()+1);

memcpy(info.msg,msg,msg.GetLength()+1);

int charsend=send(clientsock,(char*)&info,sizeof(info),0);

if(charsend==SOCKET_ERROR)

{

MessageBox("发送过程中发生一个错误!",NULL,MB_OK);

return;

}

}

程序设计思想

该程序实现了聊天的基本功能,包括:群聊,私聊等。支持多个客户端以不同的用户名同时登录服务器,每个客户端可以随时同服务器断开。

首先在服务器端创建套接字并实现绑定和监听,当客户端输入服务器端的IP地址和用户的昵称后与服务器端进行连接,连接成功后就可以发送消息,通过设置一个变量type来确定消息是群发或是私聊等。

利用异步选择模型,应用程序可以在一个套接字接受以windows 消息为基础的网络事件通知,该模型的实现方法是通过调用WSAAsyncSelect函数自动将套接字设置为非阻塞模式,并注册一个或多个网络事件,提供一个消息通知的窗口句柄,当注册的网络事件发生时,对应的窗口接受到一个基于消息的通知。

聊天室程序采用C/S模式,服务器可以同时连接多个客户端程序,为多个客户机服务。服务器接收来自客户端的信息,并将其转发到其他客户端。从而实现多个客户机之间的信息交换,及时显示新的客户机进入聊天室和和客户机退出聊天室的信息,也转发给其他用户。进入服务器程序,用户不需要设置端口号等信息,系统默认给出,但要点击监听按钮来启动服务,等待用户的连接请求。当运行客户端

程序时,客户端需要填写昵称和密码,不需要填写端口号(程序默认),然后发送请求,服务器接收请求,然后建立连接,进入会话期。服务器程序动态的为新的客户机创建相应的套接字对象,并采用链表形式来管理客户端的套接字对象,从而实现一个服务器为多个客户机服务的目标。在设计这个程序时除了基本的框架外,最重要的就是定义消息的标识符和响应套接字的管理。并且根据所定义的标识符类型来进行不同的函数响应,实现多人聊天和点对点聊天.

程序设计流程图

操作过程截图

客户端

控件属性设置过程:

客户端程序对话框中的控件对象对应的成员变量:

客户端控件对应的事件响应函数:

服务器端

控件属性设置过程:

服务器端控件对应的事件响应函数:

服务器端程序对话框中的控件对象对应的成员变量:

客户端展示效果:

服务器端展示效果:

网络编程试卷(含答案)

大学期末考试试卷(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 "生成的是奇数"

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

网络程序设计复习题 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.wendangku.net/doc/875524982.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。

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

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

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

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

《网络程序设计》期末考试试题.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、删除模块 删除数据库中的图书信息。 详细设计 代码结构:

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版).作者:朱喜福戴舒樽王晓勇

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

网络程序设计 实验报告 实验名称: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

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

网络应用程序设计课程设计报告书 题目:局域网多人聊天室 班级: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的值为( )类型。

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.以上均不对

网络编程试卷(含答案)

一.选择题(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.在网络通信过程中,需要唯一识别通信两端的端点,即运行于某机器中的应用程序。如 果没有引入端口,则只能通过进程号进行识别。进程号是系统动态分配的,不同的系统

计算机网络课程设计题目和要求

计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。 一、格式要求及须知: (1)使用学院网站的课程设计模版,要求格式美观,字体及编号要求见表1。 表1 字体及编号要求

(2)参考文献:参考课本的参考文献格式(附录C)。但编号换成[1]、[2]……(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。 (4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。 (5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。打印后递送到指导老师的信箱。 (6)如发现两组设计雷同或抄袭互联网,该组重做! 二、任务完成形式: 交付课程设计说明书、设计作品(需要验收)。 设计作品指的是完整的源程序代码(对于第二类题目为仿真文件)。 课程设计说明书(纸质+电子版),内容包括:设计任务、需求分析、总体设计、详细设计(相应地给出关键的代码)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 设计工作计划与进度安排: 根据所选题目,合理安排进度计划,总体上需要40个小时。以下仅供参考: 1. 原理知识 4小时 2. 程序设计技术 4小时 3. 开发环境与程序调试环境 4小时 4. 总体设计、关键环节的详细设计 8小时

网络程序设计_试题2004

考试时间120 分钟 网络应用程序设计试题班级学号姓名 任课教师 一、单项选择题(10分) 1.___协议提供面向连接的、可靠的数据流服务。 ①UDP ②IP ③TCP ④ICMP 2.ICMP数据包一定是被封装在___数据包中传输的。 ①UDP ②IP ③TCP ④ATM 3.使用UDP协议时,调用函数connect(),可以____。 ①获取通信另一方的IP地址 ②启动三次握手操作 ③获取通信另一方的接收队列长度 ④获取通信另一方接收缓存区的大小 4.TCP套接字函数中___不会产生阻塞。 ①bind ②read ③accept ④write 5.网络编程时,不需要考虑字节顺序的数据类型是____。 ①int ②char ③float ④struct 6.调用fork( )函数产生子进程后,进程的运行顺序是____。 ①先运行父进程,后运行子进程 ②先运行子进程,后运行父进程 ③先运行进程号较小的进程 ④不确定

7.以下函数中可以清除Zombie进程的函数是____。 ①close ②exit ③waitpid ④shutdown 8.进程响应信号时,不能对信号____作“忽略”处理。 ①SIGURG ②SIGINT ③SIGSTOP ④SIGALARM 9.采用多路复用I/O 监听3个套接字的数据时,如果套接字描述符分别是: 5、17、19,则select(int maxfd, struct fd_set* rdset, NULL,NULL) 中的 maxfd应取为___。 ① 5 ②3 ③19 ④20 10.超级服务进程的启动文件/ e t c / i n e t d . c o n f 中,wait 字段设置为nowait,通常表示此项服务____。 ①是并发服务②是循环服务 ③采用UDP协议工作④是单线程服务 二、简答题(25分) 1.套接字函数close( ) 与shutdown( ) 的差别? 2.函数fork( ) 与exec( ) 的差别? 3.创建一个守护进程有哪些步骤?

网络编程聊天程序课程设计

课题名称:TCP/IP协议及网络编程技术课程设计子课题:实现简化功能的客户机和服务器聊天程序 院(系):计算机学院 专业:通信工程 班级: 学生姓名:hshengxue 学号:200900402022 指导教师:周坚和 2012年 6 月22 日

目录 摘要 (3) 引言 (3) 一、课程设计的目的和意义 (3) 二、课程设计的内容和要求 (3) 三、课程设计所需了解的相关内容和技术 (4) (一)、套接口 (4) (1)套接口的概念 (4) (2)套接口的分类 (5) (3) Socket工作模式 (6) (二)、所用的关键技术 (6) (三)Winsock API的使用 (7) 四、课程设计过程 (7) (一)设计思路 (7) (1)服务器的主要工作流程 (7) (2)客户机的工作流程.............................................8. (3)服务器的工作流程 (8) 五、编程实现 (9) (一)服务器端的实现 (9) (二)客户端的实现 (11) 六、小结 (15) 七、参考文献 (16)

摘要: 网络应用程序是通过网络使用通信协议实现进程间的通信;本项目采用软件工程的方法,综合运用网络程序设计,以visual c++6.0作为系统前台应用程序开发工具。此局域网聊天工具采用客户端/服务端(C/S)模式和UDP连接。它由两个程序组成:服务器(Server)和客户端(Client),首先需要登录服务器,再登录客户端,需要指定服务器IP地址以便与服务器建立连接。登录后,客户可以在自己的界面上与另一指的定的客户端进行聊天。服务器模块主要用来维护网络用户用户的信息,包括用户IP地址,聊天内容;聊天客户端模块主要包括用户连接,发送信息,接收信息。是一套用于Internet网络使用的网络聊天工具,其操作简单,灵活性好,运用也比较稳定。 关键词:网络,聊天程序,客户端/服务端,UDP传输控制协议。 0、引言 网络应用程序是通过网络使用通信协议实现进程间的通信,UDP 是TCP/IP协议族为传输层设计的两个协议之一,UDP提供的是无连接、不可靠的网络传输协议,在进行网络应用程序设计时,TCP/IP 协议的核心内容被封装在操作系统中。网络应用程序要使用UDP协议来实现自己的功能,只能通过由系统提供给用户的UDP协议编程接口来实现。因此,可以说设计网络应用程序就是利用网络编程接口(API)进行程序设计的过程。在Windows环境下的网络应用程序编程接口叫

[网络程序设计]考试卷

西南科技大学网络教育学院(2015)/(2016)学年第 1 学期试题单〈A卷〉课程名称:网络程序设计专业班级:命题教师:雷全水 学生姓名:学号:成绩: 考试时间:月日 一、不定项选择 ( 每题3分,共5题,共15分,下列各小题备选答案中,有一个或多个符合题意的答案。多选、少选、错选、不选均不得分 ) 1. ASP采用的程序架构方式是________。 A、模块化程序设计 B、面向对象程序设计 C、C/S模式 D、B/S模式 2. HTML中表示表格一行的标记是。 A. B. 和 C. 和 D.

3.在VB Script中,能够获取字符串的子串的内部函数有。 A、InStr B、Left C、Right D、Mid 4.安装好PWS/IIS服务器后,我们可以通过如下方式访问,来检验服务器是否安装正确_______。 A、http://localhost B、http://你的计算机名字 C、http://你的IP地址 D、http://127.0.0.1 5.网络程序设计中常用到SQL,它是指。 A、SQL 服务器 B、数据库查询语言 C、结构化查询语言 D、数据库操作对象 二、填空题 ( 每题3分,共5题,共15分 ) 6. ASP在Windows 98下的运行环境是:(),在Windows NT下的运行环境是:()。 7.在表格中用于设置文本水平对齐方式的属性是()。 8.操作year(date())的作用是(),操作mounth(date())的作用是()。 9.在程序中ASP使用的脚本语言一般有两种指定方式,它们是()和()。 10.()表示记录集的开头,位于第一条记录之前,()表示记录集的结尾,位于最后一条记录之后。 三、简答题 ( 每题5分,共5题,共25分 ) 11. HTML语言是一种什么语言,它适用于制作哪种网页?ASP呢? 12.简述VBScript中变量的作用域和生命期的基本概念。 13.简述Application对象、Session 对象的基本功能,试说明它们的异同。

相关文档
相关文档 最新文档