Я попытался подключиться к своему почтовому серверу, который находится в локальной сети. IP-адрес почтового сервера - 192.168.1.1. Итак, я попробовал следующую программу, чтобы проверить это.Как подключиться к почтовому серверу в C
Программа:
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
int main()
{
struct sockaddr_in sa;
struct in_addr ip;
int fd=socket(AF_INET,SOCK_STREAM,0);
if(inet_pton(AF_INET,"192.168.1.1",&ip)==-1){
printf("Unable to convert ip to binary\n");
perror("");
exit(1);
}
sa.sin_family=AF_INET;
sa.sin_port=25;
sa.sin_addr=ip;
if(connect(fd,(struct sockaddr*)&sa,sizeof(sa))==-1){
printf("Unable to connect to server\n");
perror("");
exit(1);
}
else{
printf("Successfully connected to server...\n");
}
}
Выход:
$ ./a.out
Unable to connect to server
Connection refused
$
Но через телнет, успешно подключен, как показано ниже.
$ telnet 192.168.1.1 25
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
220 mail.msys.co.in ESMTP Postfix (Debian/GNU)
^]
telnet> Connection closed.
$
Итак, что я совершил здесь. Что-то не так в моей программе. Я прошу вас помочь мне решить эту проблему и почему это происходит.
ошибка ECONNREFUSED – mrg
Простите, пропустил это, мой плохой :( –
Его хорошо и спасибо – mrg