- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络实践设计报告
学院: 计算机 班级: 成教2012业余 教师: 李领治
学号: 姓名: 成绩:
实验目的:
掌握Winsock2.0套接字编程技术的基本方法。
实验要求:
运用TCP/IP Winsock2.0套接字编程技术,使用VC编写一个面向连接通信的服务端程序与客户端程序,服务器先与端口3000绑定,然后等待客户连接,连接成功后就可与客户端互相收、发信息。交互中,通信任一方只要发送 bye, 通信过程便自动结束。
实验源程序:
服务器程序:
#pragma comment (lib, Ws2_32.lib) //Winsock 2 函数库
//-------------------------------------------------------
#include conio.h
#include stdio.h
#include winsock2.h //Winsock 2 函数头文件
//-------------------------------------------------------
bool InitSocket();
int main(int, char**)
{
struct sockaddr addr;
int len;
bool over;
char msg[255];
SOCKET sock, sersock;
if( !InitSocket() ) return 0;
//加载初始化 Winsock 2 动态链接库 Ws2_32.dll
sock = socket( AF_INET,SOCK_STREAM,0 );
//创建监听的流套接口
if( sock==INVALID_SOCKET ){ //不能创建,返回
printf(不能创建Socket!\n);
getch();
WSACleanup( ); //卸载Winsock 2动态链接库Ws2_32.dll
return 0; }
//设置本服务器IP地址和端口号
((sockaddr_in*)addr)-sin_family = AF_INET;
//AF_INET:使用Internet 协议
((sockaddr_in*)addr)-sin_port = htons(3000);
//服务器端口号3000
((sockaddr_in*)addr)-sin_addr.s_addr = inet_addr(127.1.1.1);
//主机地址
//把套接口与地址绑定
bind(sock,addr,sizeof(addr));
//服务进程准备接收套接口上的连接请求
listen(sock,1); //监听方式,准备接收连接请求:1--允许等待队列中的连接请求1个
//接受网络连接,生成新的套接口sersock标识这一连接
printf(等待客户连接!\n);
len = sizeof(addr);
sersock = accept( sock,addr,len );
//从等待队列中检取连接请求,如队列空则进程阻塞等待;
//如不空,则接受客户连接,使用返回连接套接口sersock与该客户连接。
//原套接口sock可继续监听其它客户请求。
if(sersock==INVALID_SOCKET) { //若套接口sersock 出错
DWORD err = WSAGetLastError();
char txt[100];
sprintf(txt,error when accept!---errno:%d,err);
printf(txt);
getch();
closesocket(sock); //关闭监听套接口sock
WSACleanup( ); //卸载Winsock 2动态链接库Ws2_32.dll
return 0;
}
printf(有客户连接!\n输入bye通信结束\n);
over = false; //状态设置为未结束
//与客户交互会话,直至任一方打入bye后退出循环
do{
printf(\n等待对方用户输入信息......);
len = recv ( sersock,msg,200,0 );
您可能关注的文档
最近下载
- 苏教版五年级上册《我们的大脑》教学设计.docx
- 贵州省2024年高三年级4月适应性考试 地理试卷.docx
- GEUPS维护及故障讲课文档.ppt VIP
- 触摸屏技术的原理及应用.docx VIP
- 路桥施工计算手册.docx
- 年产50吨瑞舒伐他汀钙、5吨匹伐他汀钙、50吨恩格列净、50吨恩格列净中间体EM1、5吨贝曲西班马来酸盐、200吨阿托伐他汀中间体B-4、200吨瑞舒伐他汀中间体D-1等产品项目环境影响报告书.pdf
- 六年级美术上册《劳动最光荣》课件.ppt
- 抖音直播间1000个违禁词(一举夺葵版).docx
- 反渗透法海水淡化产品水水质控制指标及水质调整措施.pdf VIP
- 《论语》论仁、孝、君子、教育.doc
文档评论(0)