[NEWSboard IBMi Forum]

Thema: SetSockOpt

Hybrid View

  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    331

    SetSockOpt

    Hi,

    versuche gerade mittels der SetSockOpt die Option SO_RCVTIMEO zu setzen, bekomme allerdings als ReturnCode lediglich -1 egal, was ich probiere. Hat hier jemand eine Ahnung, wie ich diese Option richtig setze?

    setsockopt PR 10i 0 ExtProc('setsockopt')
    sock_desc 10i 0 value
    level 10i 0 value
    option_name 10i 0 value
    option_value * value
    option_length 10i 0 value
    *
    SO_RCVTIMEO c const(50)
    SO_Reuseaddr c const(55)
    Sol_Socket C const(-1)
    TimetoWait S 10i 0

    Eval TimetoWait = 7
    Eval ReturnCode = SetSockOpt(As400sid
    :Sol_Socket
    :SO_RCVTIMEO
    :%ADDR(TimetoWait)
    :%SIZE(TimetoWait))

    Danke schonmal im vorraus.

  2. #2
    Registriert seit
    Jul 2006
    Beiträge
    11
    Hallo,

    diese Socketoption funktioniert nur, wenn man in seinem C-Programm vor dem einbinden der socket.h _XOPEN_SOURCE > 520 definiert. Da das hier allerdings kein C-Programm ist wird das schon etwas schwieriger.

    Versuch es mal mit ExtProc('qso_setsockopt98')
    Diese Funktion wird intern nämlich verwendet, wenn man diese _XOPEN_SOURCE in C definiert.

    Ob man diese Funktion jetzt aber einfach zusammen mit den anderen nicht-XOPEN Socketfunktionen verwenden kann weiß ich nicht.

    Ansonsten kann man Timeouts beim Lesen des Sockets auch z.B. wunderbar mit der "alarm" Funktion oder "select" realisieren.


    Hier noch der Auszug aus dem Handbuch:
    SO_RCVTIMEO Set the receive timeout value. This option is not supported unless _XOPEN_SOURCE is defined to be 520 or greater.

    Und noch ein Link dazu:
    http://publib.boulder.ibm.com/infoce...pen_source.htm

    Tschüß
    Benedikt

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •