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

Revision 151, 2.3 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 "127.0.0.1"
15
16#define PORT "8888"
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 = {"fromBrowser"};
29                 * 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'>"};
30
31        _xml = (char *) malloc(sizeof(buff));
32
33        if ( (nHostPort = strtol(PORT, 0, 10)) == 0 )
34        {
35                printf("\n<port>\n\n");
36                printf("\ncould not make a socket\n");
37                return 0;
38        }
39
40        socketfd = socket(AF_INET, SOCK_STREAM, 0);
41
42        socketaddr.sin_family = AF_INET;
43        //socketaddr.sin_addr.s_addr = INADDR_ANY;//inet_addr(IP);
44        //socketaddr.sin_addr.s_addr = inet_addr("10.15.20.42");
45        inet_aton(IP, &socketaddr.sin_addr);
46        socketaddr.sin_port = htons(nHostPort);
47
48        err = connect(socketfd, (struct sockaddr*)&socketaddr, sizeof(socketaddr));
49
50        if ( err < 0 )
51        {
52                printf("Socket returned error #%d,program terminated\n", err);
53                exit(0);
54        }
55
56        struct hostent *hp;
57        hp = gethostbyaddr((char *)&socketaddr.sin_addr.s_addr, sizeof socketaddr.sin_addr.s_addr, AF_INET);
58
59        //printf("\n\n%s\n\n", inet_ntoa(socketaddr.sin_addr));
60        //printf("\n\n%d\n\n", inet_network("expresso.pr.gov.br"));
61
62        //printf("\n\n%d\n\n", socketaddr.sin_addr.s_addr);
63        //printf("\n\n%s\n\n", gethostbyaddr((char *)&socketaddr.sin_addr.s_addr, sizeof socketaddr.sin_addr.s_addr, AF_INET));
64
65
66        //sprintf(_xml, xml_connect, IP);
67        //_xml[strlen(_xml)] = '\0';
68        //++_xml;
69        //*_xml = '\0';
70        //puts(_xml);
71
72        bzero(_xml, sizeof(buff));
73        sprintf(_xml, "from_browser");
74        write(socketfd, _xml, strlen(_xml));
75
76        /*bzero(buff, sizeof(buff));
77        read (socketfd, buff, sizeof(buff));
78        printf("%s\n\n", buff);
79
80        bzero(_xml, sizeof(buff));
81        sprintf(_xml, "user@domine");
82        write(socketfd, _xml, strlen(_xml));
83
84        bzero(buff, sizeof(buff));
85        read (socketfd, buff, sizeof(buff));
86        printf("%s\n\n", buff);
87
88        bzero(_xml, sizeof(buff));
89        sprintf(_xml, "password");
90        write(socketfd, _xml, strlen(_xml));
91
92        bzero(buff, sizeof(buff));
93        read (socketfd, buff, sizeof(buff));
94        printf("%s\n\n", buff);*/
95
96        //sleep(10);
97        exit(0);
98}
Note: See TracBrowser for help on using the repository browser.