欢迎来到天天文库
浏览记录
ID:16489285
大小:413.50 KB
页数:16页
时间:2018-08-10
《基于winsock的简单tcp网络编程实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告实验课程名称:通信软件基础实验课学院:软件工程学院专业:软件工程指导教师:报告人姓名:学号:班级:学期:实验成绩实验项目名称基于WinSock的简单TCP网络编程一、实验目的与要求:1、学习和掌握Socket编程的面向连接编程模型。2、学习和掌握基于WinSock的TCP网络编程方法。二、实验设备及软件:笔记本电脑、Window7操作系统、MicrosoftVisualStudio2012三、实验方法(原理、流程图)流程图:四、实验过程、步骤及内容实验代码:server.h#defineMAX_CLIENT10//同时服务的client数目上限#defi
2、neMAX_BUF_SIZE65535//缓存区的大小constu_shortUDPSrvPort=2345;//Server的UDP端口constcharSTART_CMD[]="START";constcharGETCURTIME_CMD[]="GETCURTIME";//传递给TCP线程的结构化参数structTcpThreadParam{SOCKETsocket;sockaddr_inaddr;};DWORDWINAPITcpServeThread(LPVOIDlpParam);//TCP线程的线程函数DWORDWINAPIUdpServer(LPVOI
3、DlpParam);//UDP服务器线程server.cpp#include"stdafx.h"#include"iostream.h"#include"stdio.h"#include"string.h"#include"time.h"#include"WinSock2.h"#include"Windows.h"#include"server.h"#pragmacomment(lib,"Ws2_32.lib")#pragmapack(1)//结构在存储时按字节对齐longTcpClientCount=0;intmain(intargc,char*argv[])
4、{////检查命令行参数//if(argc!=2)//{//cerr<<"Worngformat!Correctusage:Server.exe";//return-1;//}//初始化winsock2环境WSADATAwsa;if(WSAStartup(MAKEWORD(2,2),&wsa)!=0){cerr<<"Failedtoinitializethewinsock2stack"<<"errorcode:"<5、readId;CreateThread(NULL,0,UdpServer,NULL,0,&dwThreadId);//创建用于侦听的TCPServerSocketSOCKETListenSocket=socket(AF_INET,SOCK_STREAM,0);//获取TCP监听端口号u_shortListenPort=(u_short)atoi(argv[1]);//获取本机名charhostname[256];gethostname(hostname,sizeof(hostname));//获取本地IP地址hostent*pHostent=gethostbyn6、ame(hostname);//填充本地TCPSocket地址结构SOCKADDR_INListenAddr;memset(&ListenAddr,0,sizeof(SOCKADDR_IN));ListenAddr.sin_family=AF_INET;ListenAddr.sin_port=htons(ListenPort);ListenAddr.sin_addr=*(in_addr*)pHostent->h_addr_list[0];//绑定TCP端口if(bind(ListenSocket,(sockaddr*)&ListenAddr,sizeof(Lis7、tenAddr))==SOCKET_ERROR){cerr<<"FailedtobindtheListenSocket"<<"errorcode:"<8、nTCPPort:"<<
5、readId;CreateThread(NULL,0,UdpServer,NULL,0,&dwThreadId);//创建用于侦听的TCPServerSocketSOCKETListenSocket=socket(AF_INET,SOCK_STREAM,0);//获取TCP监听端口号u_shortListenPort=(u_short)atoi(argv[1]);//获取本机名charhostname[256];gethostname(hostname,sizeof(hostname));//获取本地IP地址hostent*pHostent=gethostbyn
6、ame(hostname);//填充本地TCPSocket地址结构SOCKADDR_INListenAddr;memset(&ListenAddr,0,sizeof(SOCKADDR_IN));ListenAddr.sin_family=AF_INET;ListenAddr.sin_port=htons(ListenPort);ListenAddr.sin_addr=*(in_addr*)pHostent->h_addr_list[0];//绑定TCP端口if(bind(ListenSocket,(sockaddr*)&ListenAddr,sizeof(Lis
7、tenAddr))==SOCKET_ERROR){cerr<<"FailedtobindtheListenSocket"<<"errorcode:"<8、nTCPPort:"<<
8、nTCPPort:"<<
此文档下载收益归作者所有