一个winsock基本模板

 1 #include "stdio.h"
 2 #include "string.h"
 3 #include "WinSock.h"
 4 #pragma comment(lib,"wsock32.lib")
 5 
 6 int main()
 7 {
 8     SOCKET sock_server;
 9     hostent * ht_server;
10     sockaddr_in addr_server;
11     WSADATA wsaData;
12 
13     const char smtp_host[]="smtp.yeah.net";
14     const char smtp_port=25;
15 
16     //Initialize Winsock version 1.1
17     if (WSAStartup(MAKEWORD(1,1), &wsaData) != 0) {
18        perror("WSAStartup failed\n");
19        exit(1);
20     }    
21 
22     //get the ip address of smtp server
23     if ((ht_server=gethostbyname(smtp_host)) == NULL) {
24         perror("gethostbyname failed!");
25         exit(1);
26     }
27     
28     //make a socket 
29     if ((sock_server = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET) {
30         perror("make socket error!");
31         exit(1);
32     };
33 
34     //initial the server addresss
35     memset(&addr_server,0,sizeof(addr_server));
36     addr_server.sin_family=AF_INET;
37     addr_server.sin_port=htons(smtp_port);
38     memcpy(&addr_server.sin_addr,ht_server->h_addr_list[0],ht_server->h_length);
39 
40     //client connect to server
41     if(connect(sock_server,(LPSOCKADDR)&addr_server,sizeof(addr_server)) == SOCKET_ERROR) {
42         perror("connect error!");
43         exit(1);
44     };
45 
46     //read and write characters to the server
47     char buf[100]="EHLO";
48     send(sock_server,buf,strlen(buf),0);
49     recv(sock_server,buf,sizeof(buf),0);
50     puts(buf);
51 
52     //When your application is finished call WSACleanup
53     if (WSACleanup() == SOCKET_ERROR) {
54        perror("WSACleanup failed\n");
55     }
56 
57     return 0;
58 }
59 


posted @ 2010-09-05 19:49  sunjian  阅读(194)  评论(0)    收藏  举报