资源描述:
《基于SOCKET开发文本服务器客户端文本传输程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、实验目的与实验要求1、实验目的使用c++6.0或c#,基于SOCKET开发一个简单的C/S文本传输程序2、实验要求客户端能够发送由标准输入得到的文本,服务器能够接收并将其显示在标准输出上。二、实验设备(环境)及要求计算机系统:windows8.1软件环境:vc++6.0三、实验内容与步骤1、实验1(1)实验内容1、服务器端先初始化socket,并绑定端口,对端口进行监听,等待客户端的连接。2、客户端初始化socket,连接服务器,并发送数据给服务器。3、服务器接受客户端的数据,并返回回复信息。(2)主要步骤工作原理:代码:服务器#incl
2、ude#include#pragmacomment(lib,"ws2_32.lib")intmain(){//初始化WORDsockVersion=MAKEWORD(2,2);WSADATAwsaData;if(WSAStartup(sockVersion,&wsaData)!=0){return0;}//创建套接字SOCKETslisten=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(slisten==INVALID_SOCKET){printf("socke
3、terror!");return0;}//绑定IP和端口sockaddr_insin;sin.sin_family=AF_INET;sin.sin_port=htons(55555);sin.sin_addr.S_un.S_addr=INADDR_ANY;if(bind(slisten,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR){printf("binderror!");return0;}//开始监听if(listen(slisten,5)==SOCKET_ERROR){printf("liste
4、nerror!");return0;}SOCKETClient;sockaddr_inremoteAddr;intnAddrlen=sizeof(remoteAddr);charrevData[255];printf("等待连接...");Client=accept(slisten,(SOCKADDR*)&remoteAddr,&nAddrlen);if(Client==INVALID_SOCKET){printf("accepterror!");return0;}printf("接受到一个连接:%sr",inet_ntoa(rem
5、oteAddr.sin_addr));//接收数据while(1){intret=recv(Client,revData,255,0);if(ret>0){revData[ret]=0x00;printf("来自客户端的信息:");printf(revData);printf("");}//发送确认信息char*sendData="发送成功。";send(Client,sendData,strlen(sendData),0);}closesocket(slisten);WSACleanup();return0;}客户端#inclu
6、de#include#pragmacomment(lib,"ws2_32.lib")intmain(){WORDsockVersion=MAKEWORD(2,2);WSADATAdata;if(WSAStartup(sockVersion,&data)!=0){return0;}SOCKETsclient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(sclient==INVALID_SOCKET){printf("invalidsocket!");retu
7、rn0;}sockaddr_inserAddr;serAddr.sin_family=AF_INET;serAddr.sin_port=htons(55555);serAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");if(connect(sclient,(sockaddr*)&serAddr,sizeof(serAddr))==SOCKET_ERROR){printf("connecterror!");closesocket(sclient);return0;}//发送和接收printf(
8、"连接成功");while(1){char*sendData,*q;sendData=(char*)malloc(sizeof(char)*20);q=send