首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c/c++语言实现连接pop3服务器解决思路

2012-05-05 
c/c++语言实现连接pop3服务器只要实现连接就可以了,连接成功就显示“连接成功”,用户名或密码错就显示“连接

c/c++语言实现连接pop3服务器
只要实现连接就可以了,连接成功就显示“连接成功”,用户名或密码错就显示“连接失败”,不需要显示邮箱的邮件总数、大小等详细信息。感激。

[解决办法]
POP3的端口号是110
网易邮箱pop3.163.com的IP是220.181.12.101

用socket连接这个套接字

C/C++ code
#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/stat.h>#define SERVPORT 110#define MAX 4096int main(int argc, char *argv[]) {         int sockfd, sendBytes, recvBytes;    char choice;    char buf[MAX];    struct hostent *host;    struct sockaddr_in servSockaddr;    if(argc != 2) {        fprintf(stderr,"usage:./client [hostname]\n");        //exit(1);    }    /*translate the address*/    if((host = gethostbyname(argv[1])) == NULL) {        perror("fail to get host by name\n");        exit(1);    }    /*establish a socket*/    if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {        perror("fail to establish a socket\n");        exit(1);    }        /*init serverSockaddr*/    servSockaddr.sin_family = AF_INET;    servSockaddr.sin_port = htons(SERVPORT);    servSockaddr.sin_addr = *((struct in_addr *)host -> h_addr);    bzero(&(servSockaddr.sin_zero), 8);    /*connect the server*/    if(connect(sockfd, (struct sockaddr *)&servSockaddr, sizeof(struct sockaddr_in)) == -1) {        perror("fail to connect the socket\n");        exit(1);    }    printf("Success to connect the server!\n");    printf("Welcome to join %s!\n", inet_ntoa(servSockaddr.sin_addr));} 

热点排行