caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] reading from socket connection
@ 2003-04-28 19:09 Christian.Schaller
  2003-05-05 15:19 ` Xavier Leroy
  0 siblings, 1 reply; 2+ messages in thread
From: Christian.Schaller @ 2003-04-28 19:09 UTC (permalink / raw)
  To: caml-list

Hi,

When connecting, let's say to a nntp server and just exchanging some
information, the OCaml manual tells me to use open_connection from the Unix
library.  This works well, however, how can I read the output from the
remote server?  My first try was a readLines function (see below) to read
until EOF, however there's no EOF, thus my program hanging.  Any hints?  Is
this a cygwin related problem?

Thanks,
  Chris

open Unix

let server = inet_addr_of_string "10.10.10.10"
let sockaddr = ADDR_INET (server, 119)

let readLines ch =
  try
    while true do
      print_endline (input_line ch)
    done
  with End_of_file -> ();;

let client_fun ic oc =
  output_string oc "help\n";
  flush oc;
  readLines ic

let _ = 
  let ic, oc = open_connection sockaddr in
  client_fun ic oc;
  shutdown_connection ic

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Caml-list] reading from socket connection
  2003-04-28 19:09 [Caml-list] reading from socket connection Christian.Schaller
@ 2003-05-05 15:19 ` Xavier Leroy
  0 siblings, 0 replies; 2+ messages in thread
From: Xavier Leroy @ 2003-05-05 15:19 UTC (permalink / raw)
  To: Christian.Schaller; +Cc: caml-list

> When connecting, let's say to a nntp server and just exchanging some
> information, the OCaml manual tells me to use open_connection from the Unix
> library.  This works well, however, how can I read the output from the
> remote server?  My first try was a readLines function (see below) to read
> until EOF, however there's no EOF, thus my program hanging.  Any
> hints?

One hint: most servers, including NNTP servers, wait until the client
shuts down its half of the network connection before they shut down
their half of the connection, thus giving an EOF condition to the
client.

So, you need to shutdown the connection before attempting to read till EOF.

- Xavier Leroy

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-05-05 15:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-28 19:09 [Caml-list] reading from socket connection Christian.Schaller
2003-05-05 15:19 ` Xavier Leroy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).