source: trunk/instant_messenger/socket/BKP_20071105/BKP_20071026/BKP_20071019/BKP_20071018/BKP_20071009/BKP_20071008/client.c @ 151

Revision 151, 1.8 KB checked in by niltonneto, 16 years ago (diff)

Commit da nova versão do módulo, usando agente em C.
Vide Página do módulo do Trac:
http://www.expressolivre.org/dev/wiki/messenger

A versão anterior encontra-se na subpasta bkp (32/64).

Line 
1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4
5#include <sys/ioctl.h>
6#include <sys/socket.h>
7#include <sys/types.h>
8
9#include <netinet/in.h>
10#include <netdb.h>
11#include <unistd.h>
12#include <fcntl.h>
13
14#define IP "200.189.113.148"
15
16#define PORT "5222"
17
18int main(void)
19{
20        struct sockaddr_in socketaddr;
21        int socketfd,
22                nHostPort;
23        int err,
24                i,
25                unit;
26        char buff[4096];
27        char * _xml = (char)NULL,
28                 * xml_connect = {"<?xml version='1.0' encoding='UTF-8'?><stream:stream to='%s' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>"};
29
30        _xml = (char *)malloc(sizeof(xml_connect));
31
32        if ( (nHostPort = strtol(PORT, 0, 10)) == 0 )
33        {
34                printf("\n<port>\n\n");
35                printf("\ncould not make a socket\n");
36                return 0;
37        }
38
39        socketfd = socket(AF_INET, SOCK_STREAM, 0);
40
41        socketaddr.sin_family = AF_INET;
42        //socketaddr.sin_addr.s_addr = INADDR_ANY;//inet_addr(IP);
43        //socketaddr.sin_addr.s_addr = inet_addr("10.15.20.42");
44        inet_aton(IP, &socketaddr.sin_addr);
45        socketaddr.sin_port = htons(nHostPort);
46
47        err = connect(socketfd, (struct sockaddr*)&socketaddr, sizeof(socketaddr));
48
49        if ( err < 0 )
50        {
51                printf("Socket returned error #%d,program terminated\n", err);
52                exit(0);
53        }
54
55        struct hostent *hp;
56        hp = gethostbyaddr((char *)&socketaddr.sin_addr.s_addr, sizeof socketaddr.sin_addr.s_addr, AF_INET);
57
58        printf("\n\n%s\n\n", inet_ntoa(socketaddr.sin_addr));
59        printf("\n\n%d\n\n", inet_network("expresso.pr.gov.br"));
60
61        //printf("\n\n%d\n\n", socketaddr.sin_addr.s_addr);
62        //printf("\n\n%s\n\n", gethostbyaddr((char *)&socketaddr.sin_addr.s_addr, sizeof socketaddr.sin_addr.s_addr, AF_INET));
63
64
65        sprintf(_xml, xml_connect, IP);
66
67        write(socketfd, _xml, strlen(_xml));
68
69        read (socketfd, buff, sizeof(buff));
70        printf("%s\n\n", buff);
71        //sleep(10);
72        exit(0);
73}
Note: See TracBrowser for help on using the repository browser.