[R] newbie: closing unused connection + readline

Aval Sarri aval.sarri at gmail.com
Sat May 16 15:11:22 CEST 2009


On Sat, May 16, 2009 at 6:12 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
> Try explicitly closing it:
>
> close(reader.socket)
>
> or
>
> closeAllConnections()

Thank you Sir but is there a way that it does not get open each time?
I mean following line creates a new text connection each time so how
to avoid it or reuse an open connection?

line.raw <- textConnection(readLines( reader.socket, n = 1, ok = TRUE));

I tried something line this also:

mydataframe <- read.table (socket, sep=",");

but does not work says no input lines.

this also.

mydataframe <- read.table (readLine(socket), sep=",");

what is the best method of doing something like this? I am getting
totally lost between textConnection, socket and getConnection.  Now I
am trying to get the connection that was opened and reuse it but then
how do I get connection that was previously opened when running code -
since getConnection() requires a number and for that I need to know
the number of my previously opened connection. So how do I get the
number of textConnection that I open?

Sir any pointers would greatly help.

Thanks and regards
-Aval


>
> On Sat, May 16, 2009 at 8:34 AM, Aval Sarri <aval.sarri at gmail.com> wrote:
>> Hello;
>> I am new to R and trying to read a line from socket connection at a
>> time but at the end of script I am getting "closing unused connection"
>> warning. I am not able to understand how to solve this. I want to read
>> a line from socket and then use read.table/scan on that line but it
>> looks like I am opening multiple connections instead of just one.  I
>> think I am doing something wrong or not able to understand correct
>> method of doing this.
>>
>> ---------------------------code------------------------
>> # Create a socket from which to read lines - one at a time (record)
>> reader.socket <-   socketConnection( host = 'localhost', 5000,
>>                                     server = TRUE, blocking = TRUE,
>>                                     open = "r", encoding =
>> getOption("encoding") );
>> # now read each record and split/validate it using read.table
>> repeat {
>>  # here for each line I am opening new connection! how to avoid it?
>>  line.raw <- textConnection(readLines( reader.socket, n = 1, ok = TRUE));
>>  line.raw <- read.table(line.raw, sep=",");
>>
>>  if ( length(line.raw) <  1)
>>    break;
>>
>>  print (showConnections());
>>  print(warnings());
>> }
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>




More information about the R-help mailing list