-
Socket Fehler 3430 bei Connect
Guten Tag,
beim Versuch eine Socket Verbindung aufzubauen bekomme ich immer den Fehlercode 3430 ( Operation in progress) zurück. Ein Auszug aus dem Code ist hier:
Code:
D p_sockaddr S *
D sockaddr DS based(p_sockaddr)
D sa_family 5I 0
D sa_data 14A
D sockaddr_in DS based(p_sockaddr)
D sin_family 5I 0
D sin_port 5U 0
D sin_addr 10U 0
D sin_zero 8A
...
flags = fcntl(sock: F_GETFL);
flags = %bitor(flags: O_NONBLOCK);
fcntl(sock: F_SETFL: flags);
...
addrlen = %size(sockaddr);
p_connto = %alloc(addrlen);
p_sockaddr = p_connto;
sin_family = AF_INET;
sin_addr = IP;
sin_port = Port;
sin_zero = *ALLx'00';
RetCode = connect(sock: p_sockaddr : addrlen);
if RetCode < 0;
errnoPtr = getErrnoPtr();
dsply ('Open = ' + %char(errno));
Retcode = sclose(sock);
if RetCode < 0;
errnoPtr = getErrnoPtr();
dsply ('Open = ' + %char(errno));
endif;
return;
endif;
Wenn ich das "NONBLOCK" nicht setze, bleibt das Programm beim Connect stehen, bis ich es abbreche.
Hat jemand eine Idee, woran das liegt?
Vielen Dank im Voraus
Hubert
P.S. Ich habe die Vorlage aus der Anleitung von Scott Klement
-
3430 ist kein Fehler:
- EINPROGRESS
- 3430 - Operation in progress
Dein Fehler, dass keine Verbindung zustande kommt, muss also ein anderer sein.
-
Schönen Nachmittag.
Ich bin auch gerade dabei für mich ein Socketprogramm zu basteln welches über IMAP Mails ausliest. Dazu verwende ich das SOCKET_H-File von Scott Klement und nicht das komplette Socket-API.
https://github.com/PantalonOrange/Ma...IMAPVWRG.rpgle
Prozedur
Schau mal rein und kopier dir die benötigten Stellen raus.
Funktioniert bei mir wunderbar... :-)
greets
-
Das Problem besteht darin, dass mit den Zeilen
Code:
flags = fcntl(sock: F_GETFL);
flags = %bitor(flags: O_NONBLOCK);
fcntl(sock: F_SETFL: flags);
der Socket nicht geblockt wird. Wenn ich diese Zeilen weglasse und die Waage aus irgendeinem Grund nicht antwortet, bleibt das Programm ohne Fehlermeldung stehen.
Der Versuch mit
Code:
d TimeOut DS
d Sekunden 10i 0 inz(5)
d usec 10i 0 inz(0)
RetCode = setsockopt(sock
:SOL_SOCKET
:SO_RCVTIMEO
:%addr(Timeout)
: %size(Timeout)
);
ein Timeout zu setzen, bringt leider auch keinen Erfolg. Habe ich vielleicht beim Setzen des Timeout einen Gedankenfehler?
-
Hallo.
Ich habe jetzt etwas geforscht und scheinbar wird der Timeout mit dem setSockOpt API nicht unterstützt. Dazu muss man das Unix98 API qso_setsockopt98 verwenden.
http://blog.rpgnextgen.com/blog/2017...t-take-a-break
Greets
-
Das hatte ich auch gefunden. In der Prozedurdefinition hatte ich das bereits angegeben.
Code:
D setsockopt PR 10I 0 ExtProc('qso_setsockopt98')
D socket_desc 10I 0 Value
D level 10I 0 Value
D option_name 10I 0 Value
D option_value * Value
D option_length 10I 0 Value
Das hat leider auch Nichts gebracht.
-
Guten Morgen.
Dann weiß ich leider auch nicht mehr weiter. Versuchs mal im englischsprachigen Forum https://www.code400.com/forum/ denn dort ist Scott Klement auch aktiv unterwegs. Vielleicht kann dir dort besser geholfen werden.
greets
Similar Threads
-
By marcy88 in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 12-06-19, 13:27
-
By WeRi in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 03-04-19, 16:18
-
By ClintBarton in forum NEWSboard Linux
Antworten: 1
Letzter Beitrag: 16-06-18, 13:27
-
By max40 in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 27-01-16, 11:58
-
By rebe in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-09-01, 13:55
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks