Immanuel Normann <i.normann@iu-bremen.de> writes:
> Martin Gasbichler wrote:
>
>>Immanuel Normann <i.normann@iu-bremen.de> writes:
>
>>Could you please post the scsh program as well as the error message
>>you get?
>>
>>
> Take it simply as it is:
>
> > ,open sockets extended-ports
>
> > (define (ask-server request port-number)
> (call-with-values
> (lambda ()
> (socket-client (get-host-name) port-number))
> (lambda (in out)
> (display request out)
> (close-output-port out)
> (let ((answer (make-string-input-port in))) ; returns any
> server response into some string
> (close-input-port in)
> answer))))
>
> > (ask-server "something" 8080)
Ah, so you're using the S48-API within scsh. The problems you see are
maybe due to bugs in the S48 version that scsh is based on.
> Anyway, how would I solve the task in scsh with its elaborated socket
> functions?
Well, just use the first procedure described in the scsh network API:
(define (ask-server request host-name port-number)
(let ((socket (socket-connect protocol-family/internet
socket-type/stream
host-name
port-number)))
(display request (socket:outport socket)) ;; maybe you have to add NEWLINE
here
(let ((answer (make-string-input-port (socket:inport socket))))
(close-socket socket)
answer)))
[Untested code]
--
Martin
|