Enviar Socket criando conexão tcp/ip

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Ter, 31 Jan 2006 2:49 pm

Mestres estou com um grande problema
Meu sistema precisa se comunicar com um display eletrônico de senha e consultório. Aqueles que tem nas recepções de hospitais.

Preciso criar uma conexão tcp/ip com host/porta: 192.1.3.180/4000
enviando dados de número e consultório

Hoje está feito em java utilizando socket e precisamos colocar isso em uma procedure no forms.

Alguém já fez isso?
valeu
:shock:
ohoseki
Localização: sp

Mensagemem Ter, 31 Jan 2006 4:04 pm

Eu nunca fiz isso, mas creio que você conseguirá com a UTL_TCP.
http://www.lc.leidenuniv.nl/awcourse/or ... /u_tcp.htm
http://www.lc.leidenuniv.nl/awcourse/or ... u_tcp2.htm

Código: Selecionar todos
SQL> desc utl_tcp
Element                        Type     
------------------------------ ---------
CONNECTION                     TYPE     
CRLF                           VARIABLE 
BUFFER_TOO_SMALL               EXCEPTION
END_OF_INPUT                   EXCEPTION
NETWORK_ERROR                  EXCEPTION
BAD_ARGUMENT                   EXCEPTION
PARTIAL_MULTIBYTE_CHAR         EXCEPTION
TRANSFER_TIMEOUT               EXCEPTION
BUFFER_TOO_SMALL_ERRCODE       CONSTANT 
END_OF_INPUT_ERRCODE           CONSTANT 
NETWORK_ERROR_ERRCODE          CONSTANT 
BAD_ARGUMENT_ERRCODE           CONSTANT 
PARTIAL_MULTIBYTE_CHAR_ERRCODE CONSTANT 
TRANSFER_TIMEOUT_ERRCODE       CONSTANT 
OPEN_CONNECTION                FUNCTION 
AVAILABLE                      FUNCTION 
READ_RAW                       FUNCTION 
WRITE_RAW                      FUNCTION 
READ_TEXT                      FUNCTION 
WRITE_TEXT                     FUNCTION 
READ_LINE                      FUNCTION 
WRITE_LINE                     FUNCTION 
GET_RAW                        FUNCTION 
GET_TEXT                       FUNCTION 
GET_LINE                       FUNCTION 
GET_TEXT_NCHAR                 FUNCTION 
GET_LINE_NCHAR                 FUNCTION 
FLUSH                          PROCEDURE
CLOSE_CONNECTION               PROCEDURE
CLOSE_ALL_CONNECTIONS          PROCEDURE

SQL>


Eis um exemplo: (se conecta num web-server e pega o primeiro documento que abrir)
Código: Selecionar todos
DECLARE
  c  utl_tcp.connection;  -- TCP/IP connection to the Web server
  ret_val pls_integer;
BEGIN
  c := utl_tcp.open_connection(remote_host => 'www.acme.com',
                               remote_port =>  80,
                               charset     => 'US7ASCII');  -- open connection
  ret_val := utl_tcp.write_line(c, 'GET / HTTP/1.0');    -- send HTTP request
  ret_val := utl_tcp.write_line(c);
  BEGIN
    LOOP
      dbms_output.put_line(utl_tcp.get_line(c, TRUE));  -- read result
    END LOOP;
  EXCEPTION
    WHEN utl_tcp.end_of_input THEN
      NULL; -- end of input
  END;
  utl_tcp.close_connection(c);
END;



Também existe a possibilidade de fazer uma JAVA STORED PROCEDURE que faz o serviço. (aqui no forum tem alguns exemplos disso).

:-o
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Qua, 01 Fev 2006 10:19 am

Legends. Deu certo. Utilizei o seguinte código :D
Código: Selecionar todos
   
    declare
       c  utl_tcp.connection;  -- TCP/IP connection to the Web server 
        x pls_integer;
     BEGIN
       c := utl_tcp.open_connection('192.1.3.180', 4000);  -- open connection
 
       x := utl_tcp.write_line(c, '!#'||chr(9)||chr(9)||chr(1)||chr(4)||chr(4)||'.');    -- send HTTP request
--A linha acima envia os numeros do consultório e a senha
       x := utl_tcp.write_line(c);

       utl_tcp.close_connection(c);
       
     exception
        when others then
        message(sqlerrm);
       
     END;
ohoseki
Localização: sp

Mensagemem Seg, 28 Mai 2007 11:35 am

Agradeço, se me ajudarem, estou farto de procurar e não encontro forma de solucionar o meu problema:
Tenho um ficheiro que quero enviar diariamento para um endereço http
porta 80 do servidor da base de dados para um site .

Podem-me ajudar sff.

è novo para mim e tenho urgencia .

Obrigado
apac
Localização: Odivelas



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes