版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目分析设计文档使用socket编写pop3客户端课程名称基础实践专 业计科班 级学 号姓 名11111撰写时间: 2015 年 9 月 9 日【项目构思】使用socket编写pop3客户端【项目设计】#include #include#include#include#pragma comment(lib,ws2_32.lib)#define MAX_SIZE 128 /定义可以接收的最大字符串长度main(int argc, char *argv)/变量声明WSADATA wsaData;int sock;char hostName128; /服务器IPstruct hostent* pHo
2、st; struct sockaddr_in servAddr; /服务器端地址int byteRcvd; /recv函数接收到的字节数char respondFromServerMAX_SIZE; char resStringMAX_SIZE; char commandMAX_SIZE;char mailBufMAX_SIZE;int i;/加载Winsock DLLif(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)printf(初始化winsock失败n);exit(0);/建立Socketsock=socket(PF_INET,SOCK_STREAM,IP
3、PROTO_TCP);if(sock=INVALID_SOCKET)printf(创建socket失败n);WSACleanup();exit(0);/从控制台输入服务器端的域名地址 printf(请输入pop3服务器的域名地址:n);scanf(%s,hostName); pHost=gethostbyname(hostName);/构造服务器端的地址结构,用于与服务器的连接memset(&servAddr,0,sizeof(servAddr);/结构体清零servAddr.sin_family=AF_INET;/servAddr.sin_addr.s_addr = inet_addr(ho
4、stIP);servAddr.sin_addr.s_addr = (*(struct in_addr*)pHost-h_addr).s_addr;servAddr.sin_port=htons(110); /连接服务器if(connect(sock,(struct sockaddr *)&servAddr,sizeof(servAddr)=SOCKET_ERROR )printf(连接建立失败n);closesocket(sock);WSACleanup();exit(0);/接收服务器响应byteRcvd = recv(sock,respondFromServer,MAX_SIZE,0);i
5、f(byteRcvd = SOCKET_ERROR) printf(连接响应失败n);closesocket(sock);WSACleanup();exit(0);elseif(memcmp(respondFromServer,-ERR,4)=0)printf(连接错误n);closesocket(sock);WSACleanup();exit(0);elseprintf(服务器响应:); for(i=0;ibyteRcvd;i+)printf(%c,respondFromServeri);printf(n);/验证用户名memset(resString, 0, sizeof(resStrin
6、g);/信息清空 memset(command,0,MAX_SIZE);printf(请输入用户名:n);scanf(%s,resString); memcpy(command,USER ,strlen(USER ); memcpy(command+strlen(USER ),resString,strlen(resString); memcpy(command+strlen(USER )+strlen(resString),rn,2);send(sock,command,strlen(command),0);byteRcvd = recv(sock,respondFromServer,MAX
7、_SIZE,0);if(byteRcvd = SOCKET_ERROR) printf(socket错误n);closesocket(sock);WSACleanup();exit(0);elseif(memcmp(respondFromServer,-ERR,4)=0)printf(用户名错误n);closesocket(sock);WSACleanup();exit(0);elseprintf(服务器响应:);for(i=0;ibyteRcvd;i+)printf(%c,respondFromServeri);printf(n);/验证密码memset(resString, 0, size
8、of(resString);/信息清空 memset(command,0,MAX_SIZE);printf(请输入密码:n);i=0;while(resStringi=getch() if(resStringi=13) printf(n); break; if(resStringi!=b) printf(*); i+; else printf(b b); i-; resStringi=0; memcpy(command,PASS ,strlen(PASS ); memcpy(command+strlen(PASS ),resString,strlen(resString); memcpy(co
9、mmand+strlen(PASS )+strlen(resString),rn,2);send(sock,command,strlen(command),0);byteRcvd = recv(sock,respondFromServer,MAX_SIZE,0);if(byteRcvd = SOCKET_ERROR) printf(socket错误n);closesocket(sock);WSACleanup();exit(0);elseif(memcmp(respondFromServer,-ERR,4)=0)printf(密码错误n);closesocket(sock);WSACleanu
10、p();exit(0);elseprintf(服务器响应:);for(i=0;ibyteRcvd;i+)printf(%c,respondFromServeri);printf(n); /显示邮件数目memset(resString, 0, sizeof(resString);/信息清空 memset(command,0,MAX_SIZE);memcpy(command,STAT ,strlen(STAT);memcpy(command+strlen(STAT),rn,2);printf(%s,command);send(sock,command,strlen(command),0);byte
11、Rcvd = recv(sock,respondFromServer,MAX_SIZE,0);if(byteRcvd = SOCKET_ERROR) printf(socket错误n);closesocket(sock);WSACleanup();exit(0);elseif(memcmp(respondFromServer,-ERR,4)=0)printf(应答错误n);closesocket(sock);WSACleanup();exit(0);elseprintf(服务器响应:);for(i=0;ibyteRcvd;i+)printf(%c,respondFromServeri);pri
12、ntf(n);/返回指定邮件的内容/*memset(resString, 0, sizeof(resString);/信息清空 memset(command,0,MAX_SIZE);memcpy(command,RETR ,strlen(RETR );memcpy(command+strlen(RETR ),4rn,3);printf(%s,command);send(sock,command,strlen(command),0);byteRcvd = recv(sock,respondFromServer,MAX_SIZE,0);if(byteRcvd = SOCKET_ERROR) printf(socket错误n);closesocket(sock);WSACleanup();exit(0);elseif(memcmp(respondFromServer,-ERR,4)=0)printf(应答错误n);closesocket(sock);WSACleanup();exit(0);elseprintf(服务器响应:);for(i=0;ibyteRcvd;i+)printf(%c,respondFromServeri);printf(n);while(1)memset(mailBuf,0,MAX_SIZE);byteRcvd = recv(sock,mailBuf,MAX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春中物院软件中心招聘笔试历年参考题库附带答案详解
- 2026四川爱创科技有限公司变频与控制事业部招聘生产管理岗位测试笔试历年参考题库附带答案详解
- 2025浙江衢州市柯城区国有企业招聘劳务派遣人员合格和考察人员笔试历年参考题库附带答案详解
- 【遂宁】2025年下半年四川遂宁市市直事业单位公开选调工作人员18人笔试历年典型考题及考点剖析附带答案详解
- 【淮安】2025年江苏淮安市淮阴区卫生健康委员会所属事业单位第二批公开招聘工作人员24人笔试历年典型考题及考点剖析附带答案详解
- 【杭州】2025年下半年浙江杭州市卫生健康委员会所属事业单位招聘高层次人才220人笔试历年典型考题及考点剖析附带答案详解
- 钢琴及键盘乐器制作工岗前安全专项考核试卷含答案
- 导游班组安全竞赛考核试卷含答案
- 虚拟现实产品设计师安全生产能力测试考核试卷含答案
- 第3课动荡中东地区中学图文
- 民宿管理绩效考核制度
- 2026具身智能人形机器人工业场景应用建设方案
- 财政绩效评价迎检方案
- 髋臼骨折诊疗指南
- 护理教师角色与职责
- 乙型肝炎患者的心理支持
- 2025年家用学习打印机行业研究与消费行为调查数据
- 新教材八下语文寒假必背古诗文+文言文(拼音+停顿+译文)
- 2026森岳科技(贵州)有限公司招聘工作人员29人考试参考试题及答案解析
- 2025年徐州地铁招聘笔试题题库及答案
- 2026年中国银发经济深度报告:8万亿市场下的细分赛道机会
评论
0/150
提交评论