Доброе время суток. Помогите, разобратся - есть вот такой код который прекрасно работает в VC6.0. Компилирую в lcc и не работает - не соединяется
| Код | #include <winsock.h> ... #define SMTP_PORT 25 #define SMTP_ADDR "smtp.mail.ru" ... void send_mail( LPSTR lptext ){ WSADATA WSAData;
if( 0 != WSAStartup( MAKEWORD( 1, 1 ), &WSAData ) ){ MessageBox( 0, "err wsastart!", 0, MB_OK ); return; }
struct sockaddr_in smtp_addr; SOCKET sock; int con_res = 0, ln = 0, snum = 0; char srcv[ 1024 ]; char *msg[] = { "HELO smtp.mail.ru\r\n", "MAIL FROM:<[email protected]>\r\n", "RCPT TO:<[email protected]>\r\n", "DATA\r\n", "Subject:hello\r\n", "", "CRLF.CRLF\r\n", "QUIT\r\n" }; lstrcpy( msg[ 5 ], lptext ); lstrcat( msg[ 5 ], "\r\n\r\n.\r\n" ); sock = socket( PF_INET, SOCK_STREAM, 0 ); if( sock != INVALID_SOCKET ){ memset( &smtp_addr, 0, sizeof( struct sockaddr_in ) ); smtp_addr.sin_family = AF_INET; smtp_addr.sin_addr.s_addr = inet_addr ( SMTP_ADDR ); smtp_addr.sin_port = htons ( SMTP_PORT ); con_res = connect( sock, ( struct sockaddr* )&smtp_addr, sizeof( smtp_addr ) ); if( con_res ){ MessageBox( 0, "err connect!", 0, MB_OK ); } else while( snum < 8 ){ if( SOCKET_ERROR == send( sock, msg[ snum ], lstrlen( msg[ snum ] ), 0 ) ){ MessageBox( 0, "err send!", 0, MB_OK ); closesocket( sock ); WSACleanup(); return; } ln = recv( sock, srcv, lstrlen( srcv ), 0 ); srcv[ ln ] = '\0'; snum++; } } else MessageBox( 0, "err create sock!", 0, MB_OK ); closesocket( sock ); WSACleanup(); }
|
|