




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
计算机网络原理实验三 第一篇:计算机网络原理实验三实验三、套接字编程序号:姓名:字丽梅学号:20091120216成绩1.实验目的:两人一组,编写一个客户端、服务器程序,掌握Socket编程原理。2.实验环境:连入局域网络的主机一台。3.实验指导:SocketAPI是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。理解socket编程模型及其原理。4.实验分析,回答下列问题。a.运行指导书中的程序,并修改服务器的功能(自己思考),改写成多线程web服务器(选作),附上源代码,并加关键代码注释。b.给出程序调试和运行的截图。c.回答下列问题:(1)为什么在服务器和客户端要包含winsock2.h文件?答:Windows网络编程至少需要两个头文件:winsock2.h和windows.h。(2)为什么在服务器和客户端程序中要加入#pragmacomment(lib,“ws2_32.lib”)语句,如果不加会出现什么问题?答:#pragmacomment(lib,“ws2_32.lib”)表示链接ws2_32.lib这个库。该库对应ws2_32.dll,提供了对某些网络相关API的支持,若使用其中的API,则应该将ws2_32.lib加入工程,如果不加入#pragmacomment(lib,“ws2_32.lib”),则不能使用其中的API,即得不到相关API的支持。(3)为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用程序会有什么问题?答:本函数必须是应用程序或DLL调用的第一个WindowsSockets函数.它允许应用程序或DLL指明WindowsSocketsAPI的版本号及获得特定WindowsSockets实现的细节。应用程序或DLL只能在一次成功的WSAStartup()调用之后才能调用进一步的WindowsSocketsAPI函数。如果不用应用程序或DLL就不能进一步的调用WindowsSocketsAPI函数,程序就不能继续执行。(4)如果服务器程序中没有memset(server.sin_zero,0,sizeof(server.sin_zero));语句,程序会出现什么错误,为什么?答:没有错误,注释这一条语句后,程序调试成功,实现访问。(5)如果先运行客户端程序,程序会有什么现象,为什么会有这一现象?答:程序跳出运行,并显示”cannotcreatconnect!”因为没有相应的服务器与之创立链接。(6)如果服务器程序所在计算机没有连接网络,程序会发生什么错误?我们捕获到什么错误信息?答:如果服务器程序所在计算机没有链接网络,则执行程序后出现:bindingstreamsocket:NoerrorPressanykeytocontinue...(7)上述服务器是串行处理多个客户端的请求,如何该成并发处理的服务器?答:用父进程调用accept,然后调用fork,这样,已连接套接口就在父进程与子进程间共享,一般来说,接下来便是子进程读、写已连接套接口并关闭侦听套接口,而父进程则关闭已连接套接口。第二篇:计算机网络原理实验三实验三、套接字编程1.实验目的:两人一组,编写一个客户端、服务器程序,掌握Socket编程原理。2.实验环境:连入局域网络的主机一台。3.实验指导:SocketAPI是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。理解socket编程模型及其原理。4.实验分析,回答下列问题。a.运行指导书中的程序,并修改服务器的功能(自己思考),改写成多线程web服务器(选作),附上源代码,并加关键代码注释。服务器:#include“stdafx.h”#include#include#include#include#pragmacomment(lib,“ws2_32.lib”)#defineMYPORT3490/*定义用户连接端口*/#defineBACKLOG10/*多少等待连接控制*/#defineSERVER_IP_ADDR“113.55.34.41”/*服务器的IP地址*/int_tmain(intargc,_TCHAR*argv[]){SOCKETsock,msgsock;#definePORT3490intlength=0;structsockaddr_inserver;structsockaddrtcpaddr;charbuf[1024]=“";intrval=0,len=0,err=0,i;//用于循环WORDwVersionRequested;WSADATAwsaData;wVersionRequested=MAKEWORD(2,2);err=WSAStartup(wVersionRequested,&wsaData);if(err!

是浩****32
实名认证
内容提供者


最近下载