【问题标题】:Error in winsock programwinsock程序错误
【发布时间】:2011-01-16 07:12:04
【问题描述】:
  #include <winsock2.h>
      #include <windows.h>
#include<stdio.h>
#pragma comment(lib, "Ws2_32.lib")

     #include <iostream>
    using namespace std;



    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow)

    {

      WSADATA wsaData;
WSAStartup(MAKEWORD(1,1), &wsaData);
SOCKET Sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(Sock == INVALID_SOCKET) 
    { 
    WSACleanup(); 
    return INVALID_SOCKET; 
    };

LPHOSTENT hostEntry;
in_addr iaHost;


SOCKADDR_IN Addr_in;
Addr_in.sin_family=AF_INET;
Addr_in.sin_addr.s_addr=inet_addr("10.0.2.6");
Addr_in.sin_port=htons(25);





if ( connect(Sock,(LPSOCKADDR)&Addr_in,sizeof(struct Addr_in)) == SOCKET_ERROR) 
        { 
WSACleanup(); 
return INVALID_SOCKET;
                };

struct Email { LPSTR sender , recipient , message , subject;  };
Email e = { "vin@jkdbk.com"  , "vinod@vrk.com" , "hi" , "joke"};

LPSTR lpszBuff = new char[500];
        //LPSTR vin=new char[500];
        recv(Sock,lpszBuff,500,0);
        cout << lpszBuff;
        sprintf(lpszBuff,"HELO Mail-Server\r\n");
        send(Sock,lpszBuff,strlen(lpszBuff),0);     
        recv(Sock,lpszBuff,100,0);
        cout << lpszBuff;
         //for (int i = 0;i>=0; i++)        {
        sprintf(lpszBuff,"MAIL FROM: %s\r\n",e.sender);
        send(Sock,lpszBuff,strlen(lpszBuff),0);
        recv(Sock,lpszBuff,100,0);
        sprintf(lpszBuff,"RCPT TO: %s\r\n",e.recipient);
        send(Sock,lpszBuff,strlen(lpszBuff),0);
        recv(Sock,lpszBuff,100,0);
        sprintf(lpszBuff,"DATA\r\nFROM: <%s>\r\nSUBJECT: %s\r\n%s\r\n.\r\n",e.sender,e.subject,e.message);
        send(Sock,lpszBuff,strlen(lpszBuff),0);
        recv(Sock,lpszBuff,100,0);
       //}
        sprintf(lpszBuff,"QUIT");
        send(Sock,lpszBuff,strlen(lpszBuff),0);
        //recv(s,lpszBuff,100,0);
        delete lpszBuff;

 WSACleanup();

         exit(0);



}

这是一个将邮件发送到给定地址的邮件服务器的程序

它给了我错误

错误 C2027:使用未定义类型 'WinMain::Addr_in'..

【问题讨论】:

    标签: winapi winsock


    【解决方案1】:

    你有以下表达式:

    sizeof(struct Addr_in)
    

    随便你

    sizeof(Addr_in)
    

    sizeof(SOCKADDR_IN)
    

    就目前而言,您的代码没有称为Addr_instruct 类型。

    另外,以后请不要忘记在错误消息中包含行号,并在源代码中指明这指的是哪一行。当然,您应该自己做这件事,但当我们去尝试回答您的问题时,它也会对我们有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多