`
leon1509
  • 浏览: 533367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE做socket编程

阅读更多
create or replace function func_socket(IV_SENDBUF in varchar,
                                                  OV_RECVBUF out varchar)
  return integer is
  Result integer;
  /*与服务器通讯
  参数从表读取*/
  sServIp   varchar2(15);
  iServPort number(6);
  iTimeout  number(3);
  sStartFlg varchar2(2); --开始标志
  sHead     varchar2(9); --报文头
  SBuf      varchar2(2048); --数据区
  socket    utl_tcp.connection;
  iLength   number(4);
  sqlerr    number(6);
  iCnt      number(2);
  iRecvLen  number(6);
begin
  OV_RECVBUF := '';
  Result     := 0;
  iCnt       := 0;
  /*读取参数*/
  select SERV_IP, SERV_PORT, TIMEOUT
    into sServIp, iServPort, iTimeout
    from intf_bank_cfg
   where cfg_id = 1
     and rownum = 1;
  /*连接服务器*/
  socket := utl_tcp.open_connection(sServIp,
                                    iServPort,
                                    NULL,
                                    NULL,
                                    NULL,
                                    NULL,
                                    NULL,
                                    NULL,
                                    iTimeout);
  /*发送数据*/
  if utl_tcp.write_text(socket, IV_SENDBUF) <> length(IV_SENDBUF) then
    return - 1;
  end if;
  utl_tcp.flush(socket);
  /*接收数据*/
  <<nextrecv>>
  if iCnt > 3 then
    return - 1;
  end if;
  IF (utl_tcp.available(socket, iTimeout) > 0) THEN
    /*处理报文头,如果不是S开头继续接收2次*/
    if utl_tcp.read_text(socket, sStartFlg, 1) <> 1 or
       substr(sStartFlg, 0, 1) <> 'S' then
      --'S开头判断'
      iCnt := iCnt + 1;
      goto nextrecv;
    end if;
    /*长度判断*/
    if utl_tcp.read_text(socket, sHead, 8) <> 8 then
      return - 1;
    end if;
    iLength := to_number(substr(sHead, 5, 4));
    /*接收报文体*/
    iRecvLen :=utl_tcp.read_text(socket, SBuf, iLength);
    if  lengthb(sBuf)<> iLength then
      return - 1;
    end if;
    OV_RECVBUF := sStartFlg || sHead || SBuf;
  else
    Result := -1;
  end if;
  /*关闭连接*/
  utl_tcp.close_connection(socket);

  /*记录交易日志*/
  return(Result);
exception
  when others then
    sqlerr := sqlcode;
    utl_tcp.close_connection(socket);
    return - 1;
end func_bank_commwithserv;
/
分享到:
评论

相关推荐

    oracle调用java 使用socket监听端口测试

    首先,我们需要理解Socket编程的基本概念。Socket是网络通信中的一个接口,它允许应用程序之间通过网络交换数据。在Java中,Socket提供了TCP(传输控制协议)的低级访问,使得我们能够创建客户端和服务器端的连接。 ...

    socket--Db.rar_oracle_socket db

    在IT领域,Socket编程是一种常见的通信机制,它允许应用程序通过网络进行数据传输。在这个特定的案例中,"socket--Db.rar_oracle_socket db" 提到了客户端和服务端通过Socket连接Oracle数据库进行读写操作。以下是对...

    oracle Socket监听数据库推送信息

    3. **Java Socket编程**: - Java Socket是Java提供的网络通信API,允许应用程序作为客户端(Socket)或服务器(ServerSocket)进行双向通信。 - 在Oracle数据库监听中,Java程序会启动一个ServerSocket,等待...

    服务程序socket编程例子,包含ADO数据库操作。

    在IT行业中,服务程序Socket编程是一种常见的网络通信技术,它允许不同计算机间的程序进行数据交换。Socket编程在服务器端和客户端之间建立连接,为应用程序提供低级别的、原始的TCP/IP通信方式。本示例中,结合了...

    java 论综论网络Socket编程.doc

    ### Java网络Socket编程详解 #### 一、综论网络Socket编程 从早期的C到C++,网络编程一直被认为是一项复杂且容易出错的任务。程序员不仅要掌握大量的网络细节,有时还需要深入了解硬件工作原理。传统的网络编程...

    JAVA-基于socket的学员信息管理

    在Java编程领域,Socket通信是一种基础且重要的网络编程技术,常用于实现客户端与服务器之间的数据交互。本项目“JAVA-基于socket的学员信息管理”利用Socket实现了一个学员信息管理系统,允许用户进行登录并执行...

    socket 大数据并列接收存数据库小列子(带多线程模拟数据)

    在IT领域,Socket编程是网络通信的核心技术之一,它允许两个或多个应用程序通过网络进行通信。在这个"socket大数据并行接收存数据库小例子"中,我们主要探讨的是如何利用Socket来处理大数据,并通过多线程技术提高...

    Oracle Solaris 9 - Programming Interfaces Guide-260

    4. 网络编程接口:涵盖了 Oracle Solaris 9 操作系统的网络编程接口,包括 socket 编程、网络协议、网络管理等。 该指南还涵盖了其他一些重要的编程接口,例如安全接口、设备管理接口、图形用户接口等。 在该指南...

    Swing写的局域网Socket 聊天系统

    综合这些信息,我们可以了解到这个项目是一个使用Java Swing开发的本地网络聊天软件,具备基本的用户登录功能,利用Oracle数据库存储登录信息,并通过Socket实现点对点和点对面的消息传递。服务器端和客户端的代码...

    JSP制作的仿QQ,用socket做的

    本项目是一个基于JSP技术开发的简易在线聊天应用程序,模仿了QQ的基本功能,主要利用了Socket编程实现客户端与服务器端的实时通信。在本文中,我们将深入探讨JSP和Socket在该项目中的应用,以及这两个技术的核心知识...

    Oracle Solaris 9 - man pages section 3: Networking Library Funct

    Oracle Solaris 9 操作系统提供了一个完整的 socket 编程接口,包括 socket 创建、连接、数据传输、错误处理等方面的内容。开发者可以使用这些函数来创建高性能的网络应用程序。 socket 编程函数包括: * socket()...

    Oracle Solaris 9 - man pages section 7: Device and Network Inter

    4. Socket 编程接口:介绍 Oracle Solaris 9 中的 socket 编程接口,包括 socket 的创建、使用和管理。 5. 设备和网络接口的安全管理:介绍 Oracle Solaris 9 中设备和网络接口的安全管理,包括身份验证、访问控制和...

    pb socket实例

    Socket通信是计算机网络编程中的基本概念,用于实现不同设备间的双向通信。在PB中,开发者可以利用Socket类来创建服务器端和客户端的通信接口。下面将详细阐述PB Socket通信实例及其与配置文件的使用。 一、PB ...

    java基于Socket的网络通信

    Java基于Socket的网络通信是Java编程领域中的一个重要知识点,它涉及到如何通过网络在不同设备间交换数据。Socket在计算机网络中扮演着客户端和服务器之间的桥梁角色,使得它们能够相互通信。在这个Java项目中,我们...

    Socket说明文档(英文版)

    本章节将详细介绍 Socket 的基本概念以及如何在 Java 中有效地利用 Socket 进行编程。 #### 二、Socket基础知识 1. **Socket定义**:Socket 可以理解为两个进程之间的通信端点。一个 Socket 包括 IP 地址和端口号...

    基于Socket的http监听

    1. **Socket编程**:Socket是网络通信的基石,提供了进程间的双向通信。在Java中,`java.net.Socket`和`java.net.ServerSocket`类用于创建客户端和服务器端的Socket连接。 2. **HTTP协议解析**:HTTP监听服务需要...

    C# Socket即时通讯

    2. **Socket编程**:Socket是网络编程的基本组件,它提供了一种在不同计算机之间建立连接并交换数据的方法。在本项目中,Socket被用来创建客户端和服务器之间的通信通道,实现消息的发送和接收。 3. **Oracle数据库...

    DBTranfer(封装其他系统对linux系统中oracle数据库的访问)

    Socket是网络编程中的基本组件,用于在网络上的不同计算机之间建立连接并交换数据。在DBTranfer的上下文中,socket通信确保了跨平台的数据传输能力,无论是Windows 7还是Red Hat Linux系统,都能通过socket接口与...

    Java+oracle 制作的仿QQ系统

    初学者需要掌握Java的基础语法、异常处理、线程管理和网络编程(Socket编程)。 2. **Java GUI(图形用户界面)**:QQClient部分可能使用Java的Swing或JavaFX库来构建用户界面,这包括按钮、文本框、聊天窗口等组件...

Global site tag (gtag.js) - Google Analytics