实验一 Windows下Socket编程实现简单通信

实验一 Windows下Socket编程实现简单通信

ID:39575982

大小:174.50 KB

页数:6页

时间:2019-07-06

实验一 Windows下Socket编程实现简单通信_第1页
实验一 Windows下Socket编程实现简单通信_第2页
实验一 Windows下Socket编程实现简单通信_第3页
实验一 Windows下Socket编程实现简单通信_第4页
实验一 Windows下Socket编程实现简单通信_第5页
资源描述:

《实验一 Windows下Socket编程实现简单通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、天津理工大学实验报告学院(系)名称:计算机与通信工程学院姓名刘琪琪学号20125871专业网络工程班级1班实验题目Windows下Socket编程实现简单通信课程名称网络编程课程代码实验时间2015实验地点7-219批改意见成绩教师签字:实验Windows下Socket编程实现简单通信一实验目的在windows环境下进行socket编程,实现两台主机间的简单通信。二实验环境搭载Windows7操作系统的PC机VC6.0编译器三实验内容1,服务器、客户端创建套接字2,客户端发送连接请求3,服务器收到请求后打印连接成功消息四实验报告要求1,有客户端和

2、服务器的完整代码2,实验结果截图3,Socket通信过程流程图五部分源代码及主要Socket函数参考1,注册套接字函数socket(intaf,inttype,intprotocol)参数解释:af:一个地址描述,目前只支持AF_INET格式,也就是说在本次实验中此参数直接写为AF_INET即可。type:指定socket类型,例如TCP类型(SOCK_STREAM)UDP类型(SOCK_DGRAM)protocol:套接口制订协议类型可以为0,。常用类型有IPPROTO_TCP、IPPROTO_UDP等2,绑定套接字函数bind(SOCKETs

3、,conststructsockaddrFAR*addr,intnamelen);参数解释:s:socket()函数返回的套接口描述字addr:指向Socket地址的指针namelen:该地址的长度3,监听函数listen(SOCKETs,intbacklog)参数解释:s:socket()函数返回的套接口描述字backlog:等待连接队列的最大长度4,接收连接函数accept(SOCKETs,structsockaddrFAR*addr,intFAR*addrlen)参数解释:s:socket()函数返回的套接口描述字addr:(可选)指针,指

4、向一缓冲区,其中接收为通讯层所知的连接实体的地址。addr参数的实际格式由套接口创建时所产生的地址族确定addrlen:(可选)指针,输入参数,配合addr一起使用,指向存有addr地址长度的整型数5,发送连接请求函数connect(SOCKETs,conststructcoskaddrFAR*name,intnamelen)s:socket()函数返回的套接口描述字name:想要进行连接的端口名namelen:名字长度客户端:#include#include#include#includ

5、e#definePORTNUMBER333#pragmacomment(lib,"ws2_32.lib")#defineQueueLen6intvisits=0;intmain(intargc,char*argv[]){WORDversion;version=MAKEWORD(1,1);WSADATAwsa;if(0!=WSAStartup(version,&wsa)){//初始化socket()printf("WSAStartuperror!");exit(0);}//structhostent*ptrh;struc

6、tsockaddr_inservaddr;structsockaddr_inclientaddr;intlistenfd;intclientfd;intport;intalen;charbuf[1000];memset(&servaddr,0,sizeof(servaddr));//初始化servaddr为0servaddr.sin_family=AF_INET;//主机地址标识的数据结构,使用TCP/IP协议servaddr.sin_addr.s_addr=INADDR_ANY;//32位的IP地址,网络字节顺序if(argc>1){port=

7、atoi(argv[1]);}else{port=PORTNUMBER;}if(port>0){servaddr.sin_port=htons((unsignedshort)port);//把端口转换成网络序}else{fprintf(stderr,"badportnumber%d",argv[1]);exit(0);}listenfd=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);//注册一个socketdescriptionDWORDerror=GetLastError();if(listenfd<0){f

8、printf(stderr,"socketcreateionfailed!");exit(0);}if(bind(listenfd,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。