source: trunk/instant_messenger/socket/client.c @ 151

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