challenge echoクライアント

TCPのechoクライアントを書いてください。

  • サーバのホスト名ないしIPアドレス、およびポートはコマンドライン引数で指定します。
  • 標準入力からユーザの入力を受け取り、echoサーバに送信します。
  • echoサーバから受信したデータを標準出力に出力します。

Windowsなら、Simple TCP/IP Servicesを起動してやれば、ローカルの確認用echo サーバとして使えます。

my_program localhost 7 < input_file > result_file

のようにしてリダイレクトを行った場合にも、result_fileがinput_fileの内容と一致するようにしてみてください。

Posted feedbacks - Flatten

Nested Hidden

こんな感じでしょうか。

1
2
3
4
5
6
7
8
9
echo.client <- function(host.name="localhost", port.number=9999){
  sock <- socketConnection(host=host.name, port=port.number)
  repeat{
    writeLines(readLines(), sock)
    writeLines(readLines(sock, n=1))
  }
}
argv <- commandArgs(trailingOnly=T)
echo.client(argv[1], argv[2])

久しぶりの投稿
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
require 'socket'

host = ARGV[0]
port = ARGV[1].to_i

TCPSocket.open(host, port) { |s|
  while $stdin.gets
    s.write $_
    print s.gets
  end
}

IO::* モジュールを使って。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use strict;
use warnings;

use IO::Socket::INET;
use IO::Handle;

my $s = IO::Socket::INET->new(
  PeerAddr => $ARGV[0],
  PeerPort => $ARGV[1],
) or die "failed to open $ARGV[0]:$ARGV[1]";

my $i = IO::Handle->new_from_fd(*STDIN, q/r/);
my $o = IO::Handle->new_from_fd(*STDOUT, q/w/);
my $buf;
while ( my $bytes = $i->read($buf, 256) ) {
  $s->syswrite($buf);
  $s->read($buf,$bytes);
  $o->syswrite($buf);
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.IO;
using System.Net.Sockets;

class P
{
    static void Main(string[] args)
    {
        TcpClient c = new TcpClient(args[0], int.Parse(args[1]));
        NetworkStream s = c.GetStream();
        TextWriter w = new StreamWriter(s);
        TextReader r = new StreamReader(s);
        string l = null;
        while ((l = Console.ReadLine()) != null)
        {
            w.WriteLine(l);
            w.Flush();
            Console.WriteLine(r.ReadLine());
        }
    }
}

Squeak Smalltalk で。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
| serverAddress portNumber socket string |
serverAddress := NetNameResolver addressFromString: '127.0.0.1'.
portNumber := 9999.
socket := Socket newTCP.
socket connectTo: serverAddress port: portNumber.
World findATranscript: nil.
[(string := FillInTheBlank request: 'string:') notEmpty] whileTrue: [
    socket sendData: string, String crlf.
    Transcript show: socket receiveData].
socket close

$ python client_echo.py localhost 7 < input_file > result_file

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/usr/bin/python
# -*- coding: utf8 -*-
import sys, socket

host, port = sys.argv[1:3]
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, int(port)))
sf = s.makefile()

for line in sys.stdin:
    sf.write(line)
    sf.flush()
    print sf.readline(),

PHP 5.1.6

$ php -q client_echo.php localhost 7 < input_file > result_file

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/usr/bin/env php
<?php
$host = $argv[1];
$port = $argv[2];

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, $host, $port);

while ($line = fgets(STDIN, 1024)) {
    socket_write($sock, $line, strlen($line));
    echo socket_read($sock, 1024);
}
?>

クライアント機能に限定したnetcatコマンドを作りなさい、ということかしら?


あえて無限リストを使って。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
(use gauche.net)
(use util.stream)

(call-with-client-socket
    (make-client-socket 'inet (car *argv*) (x->integer (cadr *argv*)))
  (lambda (i o)
    (stream-for-each
     (lambda (l)
       (display #`",|l|\n" o)
       (print (read-line i)))
     (port->stream (current-input-port) read-line))))

ocamlfind c -package unix -linkpkg -o echoc echoc.ml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
open Unix

let conn host port =
  let hostent = gethostbyname host in
  open_connection (ADDR_INET(hostent.h_addr_list.(0), port))

let main () =
  let (ich, och) = conn Sys.argv.(1) (int_of_string Sys.argv.(2)) in
  let rec loop () =
    let str = read_line () in
    Printf.fprintf och "%s\r\n" str; flush och;
    print_endline (input_line ich);
    loop () in
  loop ()

let _ = main ()

題意が分かりにくかったのでしょうか。申し訳ありません。

自分が想定していたのは、Pythonで書くなら以下のようなコードだったのですが、題意はご自由に解釈していただいて構いません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python
import sys
import os
import socket
from threading import Thread

class Receiver(Thread):
    def __init__(self, sock):
        Thread.__init__(self)
        self.src = sock
    def run(self):
        for data in iter(lambda: self.src.recv(8192), ""):
            os.write(sys.stdout.fileno(), data)

def main(args):
    if len(args) < 3:
        print >>sys.stderr, "usage: %s host port" % args[0]
        sys.exit(1)
    if sys.platform == 'win32':
        sys.stdin.setmode(os.O_BINARY)
        sys.stdout.setmode(os.O_BINARY)
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((args[1], int(args[2])))
    receiver = Receiver(sock)
    receiver.start()
    for data in iter(lambda: os.read(sys.stdin.fileno(), 8192), ""):
        sock.send(data)
    sock.shutdown(socket.SHUT_WR)
    receiver.join()
    sock.close()
    return 0

if __name__ == '__main__':
    main(sys.argv)

ええと、さっきのは#7138さんへのレスです。それと、コードが間違っていたので修正します。 setmode()はmsvcrtの関数でした。

「netcatのクライアント部分と同等」であるかは、netcatコマンドの仕様に詳しくないので、申し訳ありませんが何ともいえません。

echoはR.Stevensのunpvのようなネットワークプログラミングの教科書の最初のサンプルとして出てくることが多いでしょうから、その多言語版クックブックという観点を考えていました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
import sys
import os
import socket
from threading import Thread
import msvcrt

class Receiver(Thread):
    def __init__(self, sock):
        Thread.__init__(self)
        self.src = sock
    def run(self):
        for data in iter(lambda: self.src.recv(8192), ""):
            os.write(sys.stdout.fileno(), data)

def main(args):
    if len(args) < 3:
        print >>sys.stderr, "usage: %s host port" % args[0]
        sys.exit(1)
    if sys.platform == 'win32':
        msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
        msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((args[1], int(args[2])))
    receiver = Receiver(sock)
    receiver.start()
    for data in iter(lambda: os.read(sys.stdin.fileno(), 8192), ""):
        sock.send(data)
    sock.shutdown(socket.SHUT_WR)
    receiver.join()
    sock.close()
    return 0

if __name__ == '__main__':
    main(sys.argv)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
module Main where                                                                                                            

import Control.Arrow
import Control.Exception (bracket)
import System.Environment (getArgs)
import Network (connectTo, PortID(..))
import System.IO

func :: Kleisli IO (Handle,String) ()
func = arr ((first hPutStr >>> app)
          &&& ((hGetLines *** length . lines) >>> app))
    >>> Kleisli join'
    >>> Kleisli (snd >>> mapM_ putStrLn)
  where join' :: (Monad m) => (m a,m b) -> m (a,b)
        join' (mx,my) = mx >>= \x -> my >>= \y -> return (x,y)

hGetLines handle n
    | n == 0 = return []
    | otherwise = hGetLine handle
                    >>= \l -> hGetLines handle (pred n)
                    >>= return . (:) l

echo :: String -> Handle -> IO ()
echo s handle = do
    hSetBuffering handle LineBuffering
    runKleisli func (handle,s)

main = do
    (h:p:_) <- getArgs
    s <- getContents
    bracket (connectTo h (port p)) hClose (echo s)
  where port = PortNumber . fromIntegral . read

 Javaがまだの様なので。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import    java.io.InputStream;
import    java.io.OutputStream;
import    java.net.Socket;

class Echo {
    Socket    socket;
    OutputStream    out;
    InputStream    in;
    
    public Echo(String host,int port) throws Exception {
        socket = new Socket(host,port);
        out = socket.getOutputStream();
        in = socket.getInputStream();
    }
    
    public void echo(int size,byte[] request) throws Exception {
        byte[] response= new byte[size];
        out.write(request,0,size);
        out.flush();
        in.read(response,0,size);
        System.out.write(response,0,size);
    }
    
    public void close() throws Exception {
        socket.close();
    }
    
    public static void main(String[] args) {
        try {
            Echo    echo = new Echo(args[0],Integer.parseInt(args[1]));
            byte[]    request = new byte[2048];
            int    size;
            while ((size = System.in.read(request)) > 0) {
                echo.echo(size,request);
            }
            echo.close();
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
try {
  host = args[0] 
  port = args[1].toInteger()
} catch (e) {
  println "usage: groovy ${this.class.name} host port"
  System.exit 1
}

new Socket(host, port).withStreams { is, os ->
  dis = new DataInputStream(is)
  buf = new byte[1024]
  while ((len = System.in.read(buf)) >= 0) {
    os.write(buf, 0, len)
    dis.readFully(buf, 0, len)
    System.out.write(buf, 0, len)
  }
}

echoのプロトコル(RFC862)に詳しくないのですが、サーバ側からデータの終わり(eofなど)が返ってこないようなので、タイムアウト(10秒)を設定してみました(汗

送信したデータと比較して、同じならcloseする条件もつけました。

escriptが利用可能な環境であれば、以下のようにコマンドラインから実行可能です。

$ ./スクリプト名 localhost 7 < testfile > newfile

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env escript
main([Hostname, Port])->
        Str = loop(io:get_line(standard_io,''), []),
        Res = gen_tcp:connect(Hostname,
                        list_to_integer(Port),
                        [binary, {packet, 0}]),
        case Res of
                {ok, Socket} ->
                        ok = gen_tcp:send(Socket, Str),
                        receive_data(Socket, [], lists:flatten(Str));
                {error, Why} -> io:format("error ~p~n", [Why]), exit(eError)
        end.

receive_data(Socket, _Original, _Original) ->
                gen_tcp:close(Socket);
receive_data(Socket, SoFar, Original) ->
        receive
                {tcp, Socket, Bin} ->
                        Lines = binary_to_list(Bin),
                        io:format("~s", [Lines]),
                        receive_data(Socket, lists:flatten(SoFar ++ [Lines]), Original);
                {tcp_closed, Socket} ->
                        ok
        after 10000 ->
                gen_tcp:close(Socket)
        end.

loop(eof, SoFar)->
    lists:reverse(SoFar);
loop(Data, SoFar) ->
    loop(io:get_line(''), [Data|SoFar]).

Boost.Asio@C++でやってみました。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string>
#include <boost/asio.hpp>

int main(int argc, char** argv)
{
    if (argc <= 2)
    {
        return 2;
    }
    try
    {
        boost::asio::ip::tcp::iostream ss(argv[1], argv[2]);
        std::string send, recv;
        while (getline(std::cin, send))
        {
            ss << send << std::endl;
            getline(ss, recv);
            std::cout << recv << std::endl;
        }
    }
    catch(std::exception const& e)
    {
        std::cerr << e.what() << std::endl;
        return 1;
    }
    return 0;
}

select(2)を使って非同期I/Oで実装してみました.非同期なので,daytimeのような「相手が一方的に喋って切断する」ようなサービスに対しても期待通り動きます.

% ./echo_client localhost daytime
13 DEC 2008 19:27:24 JST

また,せっかくなので,アドレスファミリ非依存にしています.IPv6でも動きます.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <netdb.h>
#include <unistd.h>
#include <errno.h>

#ifndef false
# define false 0
#endif
#ifndef true
# define true !false
#endif

#define BUFMAX 8192

struct buf_t {
    char head[BUFMAX];
    int maxsize;
    int len;
    char *cur;
    int f_finished;
};
struct stream_t {
    int fd;
    struct buf_t *buf;
};

void buf_init(struct buf_t *);
void buf_truncate(struct buf_t *);
ssize_t stream_read(struct stream_t *);
ssize_t stream_write(struct stream_t *);
void usage(void);


void
buf_init(struct buf_t *buf)
{
    memset(buf, 0, sizeof(struct buf_t));
    buf->maxsize = BUFMAX;
    buf->len = 0;
    buf->cur = buf->head;
    buf->f_finished = false;
}

void
buf_truncate(struct buf_t *buf)
{
    buf->len = 0;
    buf->cur = buf->head;
    buf->cur = '\0';
}

ssize_t
stream_read(struct stream_t *stream)
{
    struct buf_t *buf = stream->buf;
    int fd = stream->fd;
    ssize_t len = 0, bufrest = 0;

    bufrest = buf->maxsize - 1 - buf->len;
    if (bufrest == 0)
        return 0;   /* not enough space in buffer. do nothing. */

    len = read(fd, buf->cur, bufrest);
    if (len == -1) {
        perror("read");
        exit(EXIT_FAILURE);
    } else if (len == 0) {  /* caught EOF */
        return -1;
    }
    
    buf->len += len;
    buf->cur = buf->head + buf->len;
    *buf->cur = '\0';

    return len;
}

ssize_t
stream_write(struct stream_t *stream)
{
    struct buf_t *buf = stream->buf;
    int fd = stream->fd;
    ssize_t len = 0;

    if ((len = write(fd, buf->head, buf->len)) == -1) {
        switch (errno) {
        case EPIPE:
            perror("write");
            return -1;
            break;
        default:
            perror("write");
            exit(EXIT_FAILURE);
        }
    }

    memcpy(buf->head, buf->head + len, buf->len - len);
    buf->len -= len;

    buf->cur = buf->head + buf->len;
    *buf->cur = '\0';

    return len;
}

void
usage(void)
{
    fprintf(stderr, "usage: ./echo_client <hostname> [port]\n");
    exit(EXIT_FAILURE);
}


int
main(int argc, char **argv)
{
    char *peer_hostname = NULL;
    char *peer_port = "echo";
    struct addrinfo hints, *res, *res0;
    int sockfd = -1;

    struct sigaction act;
    fd_set read_fds, write_fds;
    struct buf_t buffer[2];
    struct stream_t instream[2], outstream[2], *inp, *outp;

    int loop;
    int i, err, ret;

    /*
     * parse arguments
     */
    if (argc <= 1 || argc > 3)
        usage();
    if (argc > 2)
        peer_port = argv[2];
    peer_hostname = argv[1];

    /*
     * connect to peer
     */
    memset(&hints, 0, sizeof(hints));
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    if ((err = getaddrinfo(peer_hostname, peer_port, &hints, &res0)) != 0) {
        fprintf(stderr, "ERROR: %s\n", gai_strerror(err));
        exit(EXIT_FAILURE);
    }

    for (res = res0; res; res = res->ai_next) {
        if ((sockfd = socket(res->ai_family, res->ai_socktype,
                             res->ai_protocol)) == -1) {
            perror("socket");
            continue;
        }
        if (connect(sockfd, res->ai_addr, res->ai_addrlen) == -1) {
            perror("connect");
            close(sockfd);
            sockfd = -1;
            continue;
        }
        break;
    }
    if (sockfd == -1)
        exit(EXIT_FAILURE);

    /*
     * prepare
     */
    /* ignore SIGPIPE in order to receive EPIPE from write(2). */
    memset(&act, 0, sizeof(act));
    act.sa_handler = SIG_IGN;
    sigaction(SIGPIPE, &act, NULL);

    for (i = 0; i < 2; i++)
        buf_init(&buffer[i]);

    memset(instream, 0, sizeof(instream));
    memset(outstream, 0, sizeof(outstream));

    instream[0].fd = 0; /* stdin */
    instream[1].fd = sockfd;
    outstream[0].fd = 1; /* stdout */
    outstream[1].fd = sockfd;

    /* connect streams via buffers */
    instream[1].buf = outstream[0].buf = &buffer[0]; /* sockfd to stdout */
    instream[0].buf = outstream[1].buf = &buffer[1]; /* stdin to sockfd */

    /*
     * event loop
     */
    loop = true;
    while(loop) {
        /* select */
        FD_ZERO(&read_fds);
        FD_ZERO(&write_fds);

        loop = false;
        for (i = 0; i < 2; i++) {
            if (instream[i].buf->f_finished == false) {
                FD_SET(instream[i].fd, &read_fds);
                loop = true;
            }
            if (outstream[i].buf->len > 0)
                FD_SET(outstream[i].fd, &write_fds);
        }
        if (!loop)
            break;  /* There is nothing to input */

        ret = select(sockfd + 1, &read_fds, &write_fds, NULL, NULL);
        switch(ret) {
        case -1:
            perror("select");
            exit(EXIT_FAILURE);
            break;
        case 0:
            fprintf(stderr, "Internal ERROR: Unexpected timed out\n");
            exit(EXIT_FAILURE);
        }

        /* process input */
        for (i = 0, inp = instream; i < 2; i++, inp++) {
            if (!FD_ISSET(inp->fd, &read_fds))
                continue;

            if (stream_read(inp) == -1) {  /* caught EOF */
                inp->buf->f_finished = true;
                if (inp->fd == sockfd)  /* socket closed */
                    loop = false;
            }
        }

        /* process output */
        for (i = 0, outp = outstream; i < 2; i++, outp++) {
            if (outp->buf->f_finished == true && outp->buf->len == 0) {
                shutdown(outp->fd, SHUT_WR);
                continue;
            }

            if (!FD_ISSET(outp->fd, &write_fds))
                continue;
            
            if (stream_write(outp) == -1) { /* caught EPIPE */
                buf_truncate(outp->buf);
                outp->buf->f_finished = true;
                loop = false;
            }
        }
    }

    /* flush remained output buffers */
    for (i = 0, outp = outstream; i < 2; i++, outp++) {
        while (outp->buf->len > 0)
            stream_write(outp);
    }

    /* finalize */
    close(sockfd);
    freeaddrinfo(res0);

    exit(EXIT_SUCCESS);
}

lakeland health board nz <a href=http://rxdrugs24x7.com/category/arthritis.html>Order arthritis</a> ram nut diet http://rxdrugs24x7.com/product/naprosyn.html psychology richland washington mental health http://rxdrugs24x7.com/product/duricef.html hellp syndrome during pregnancy <a href=http://rxdrugs24x7.com/product/coumadin.html>Order Coumadin</a> pickle juice and health <a href=http://rxdrugs24x7.com/product/lotrel.html>dental desktop wallpaper</a>


type 1 polyglandular autoimmune syndrome <a href=http://rxdrugs24x7.com/product/luvox.html>Order Luvox</a> union pacific tea plate http://rxdrugs24x7.com/product/xenical.html college students and drug use http://rxdrugs24x7.com/product/levitra.html penis saize debate <a href=http://rxdrugs24x7.com/product/wellbutrin.html>Order Wellbutrin</a> folia vein <a href=http://rxdrugs24x7.com/product/celecoxib.html>billing coder medical</a>


uft dental forms <a href=http://rxdrugs24x7.com/product/celecoxib.html>Order Celecoxib</a> university of texas dental branch houston http://rxdrugs24x7.com/product/adalat.html staphylococcus aureus opportunistic infection http://rxdrugs24x7.com/product/cardura.html quincy medical <a href=http://rxdrugs24x7.com/catalogue/z.html>usa pharmacy</a> discoveries in medical history <a href=http://rxdrugs24x7.com/catalogue/p.html>nashville mental health counselors</a>


haddaway rock my heart <a href=http://royalmp3.net/artist9960/josh-lees-discography/>Josh Lees</a> children mp3 http://royalmp3.net/artist1207/ahriman-discography/ yamaha ringtones http://royalmp3.net/artist1704/africa-djole-discography/ nova telenovela na pop tv <a href=http://royalmp3.net/artist17472/akron-family-discography/>Akron-Family</a> youtube videos of celine dion an interviwe about her sons birth <a href=http://royalmp3.net/artist1953/hotwire-discography/>pop culture 1964</a> sinik instrumental <a href=http://royalmp3.net/artist38857/magierski-and-tymon-feat.-maly72-discography/>Magierski and Tymon Feat. Maly72</a> boss audio systems cl 70 300wx2 <a href=http://royalmp3.net/artist3857/california-sunshine-discography/>seussical the musical music</a>


free music nextel real ringtone <a href=http://royalmp3.net/artist1938/freiburger-spielleyt-discography/>Freiburger Spielleyt</a> christian rock music lyrics http://royalmp3.net/artist1865/safri-duo-discography/ music from and inspired http://royalmp3.net/artist3696/peter-mergener-and-weisser-discography/ kidscorner music <a href=http://royalmp3.net/artist39497/ricardo-silveira-discography/>Ricardo Silveira</a> music from iphone to imac <a href=http://royalmp3.net/artist2777/alastis-discography/>american country music awards</a> music bunny love <a href=http://royalmp3.net/artist17218/timbaland-and-magoo-discography/>Timbaland and Magoo</a> top 100 on american music billboard chart <a href=http://royalmp3.net/artist2291/joe-satriani-discography/>nami tamaki music videos</a>


pompton music hours <a href=http://royalmp3.net/artist28629/rais-khan-sitar-sultan-khan-s-discography/>Rais Khan Sitar,Sultan Khan S</a> monster mash music http://royalmp3.net/artist792/yello-discography/ sheet music giulio caccini ave maria http://royalmp3.net/artist271/angra-discography/ death sentence movie http://moviestrawberry.com/films/film_igby_goes_down/ freecopyable movie files <a href=http://moviestrawberry.com/films/film_red_dragon/>setting wizard of oz movie</a> movie running man <a href=http://moviestrawberry.com/films/film_the_carnival/>the carnival</a> carrousel music <a href=http://royalmp3.net/artist10133/malibu-stacey-discography/>Malibu Stacey</a> price of starting a music store <a href=http://royalmp3.net/artist3457/shadows-fall-discography/>hot water music remedy</a> movie 300 helmet http://moviestrawberry.com/films/film_shattered/ movie to hawaii <a href=http://moviestrawberry.com/films/film_the_libertine/>dolls movie</a> best movie ever <a href=http://moviestrawberry.com/films/film_lords_of_dogtown/>lords of dogtown</a> alpha wave music <a href=http://royalmp3.net/artist30093/timbiriche-discography/>Timbiriche</a> sarah ezen music <a href=http://royalmp3.net/artist2882/quorthon-discography/>chinese sheet music</a> movie backgrounds with motion http://rusfilms.com/page/3/ greatest movie quotes <a href=http://rusfilms.com/page/4/>milf movie</a>


music for all saints day <a href=http://royalmp3.net/artist14670/j-laze-discography/>J Laze</a> when they ring those golden bells sheet music free http://royalmp3.net/artist1759/rick-wakeman-with-the-english-rock-ensemble-discography/ listen to windham hill music http://royalmp3.net/artist1597/wehrmacht-discography/ summary of the movie shawshank redemption http://moviestrawberry.com/films/film_cleopatra_70/ harry morgan movie arena to purchase <a href=http://moviestrawberry.com/films/film_firestarter/>crop movie files</a> history of the english language movie <a href=http://moviestrawberry.com/films/film_are_we_there_yet/>are we there yet</a> how to put a music in a blog <a href=http://royalmp3.net/artist25654/phil-manzanera-discography/>Phil Manzanera</a> hide or shrink music player on myspace <a href=http://royalmp3.net/artist1497/amon-duul--uk--discography/>piano sheet music for halo 2 main theme</a> downloadable sites for high school musical 2 full movie http://moviestrawberry.com/films/film_the_u_s_vs_john_lennon/ black free fuck movie porn <a href=http://moviestrawberry.com/films/film_the_honeymooners/>cable movie tc grid</a> movie sites to watch harry potter and the order of the phoenix <a href=http://moviestrawberry.com/films/film_san_francisco/>san francisco</a> adorno standardisation music <a href=http://royalmp3.net/artist31328/sarah-vaughan-and-clifford-brown-discography/>Sarah Vaughan and Clifford Brown</a> song pop music <a href=http://royalmp3.net/artist1822/klaus-schulze-and-andreas-grosser-discography/>crow indian music</a> oh christmas tree movie http://rusfilms.com/page/3/ ice station movie <a href=http://rusfilms.com/page/4/>movie oceon sounds</a>


sheet music vangelis <a href=http://royalmp3.net/artist4559/roger-chapman-discography/>Roger Chapman</a> quotation on parenting and music http://royalmp3.net/artist3985/wizzy-noise-discography/ lead male role in music man http://royalmp3.net/artist4280/cappo-discography/ all lf my life movie http://moviestrawberry.com/films/film_casey_bats_again/ natural tit movie <a href=http://moviestrawberry.com/films/film_everything_is_illuminated/>warner premiere the clique movie casting call</a> instructions for cannon movie dital camera <a href=http://moviestrawberry.com/films/film_spacecamp/>spacecamp</a> bmg music custumer service number <a href=http://royalmp3.net/artist36/david-lanz-discography/>David Lanz</a> where can i find sheet music to print out <a href=http://royalmp3.net/artist1215/cryptic-wintermoon-discography/>online graduate music theory courses</a> pierside movie theater http://moviestrawberry.com/films/film_tron/ movie sound effects <a href=http://moviestrawberry.com/hqmoviesbyyear/year_2002_high-quality-movies/?page=4>harwich movie theatre</a> gold movie <a href=http://moviestrawberry.com/films/film_uncle_buck/>uncle buck</a> mp3 christian free music contemporary <a href=http://royalmp3.net/artist37590/david-garrett-discography/>David Garrett</a> mckenzie river music <a href=http://royalmp3.net/artist3449/poison-the-well-discography/>download free pakistani music websites</a> movie content reviews http://rusfilms.com/page/2/ movie pitchathon <a href=http://rusfilms.com/>arrow in the head movie reviews</a>


teddy bear music <a href=http://royalmp3.net/artist24559/gangrena-discography/>Gangrena</a> buy music file online ireland http://royalmp3.net/artist4053/the-muses-rapt-discography/ hawaiian music or chants http://royalmp3.net/artist2498/snap-vs-motivo-discography/ book and movie night gifts and gift baskets http://moviestrawberry.com/films/film_barney_animal_abc_s/ lone survivor movie <a href=http://moviestrawberry.com/films/film_riding_giants/>resident evil movie review</a> movie easter eggs <a href=http://moviestrawberry.com/films/film_the_chronicles_of_narnia_the_lion_the_witch_and_the_wardrobe/>the chronicles of narnia the lion the witch and the wardrobe</a> buy online music tracks sale ireland <a href=http://royalmp3.net/artist18887/johannes-brahms-discography/>Johannes Brahms</a> portable music stand <a href=http://royalmp3.net/artist2208/hiroki-okano-discography/>ffxi windurst music</a> download knocked up the movie http://moviestrawberry.com/films/film_life_70/ gay twink free movie <a href=http://moviestrawberry.com/hqmoviesbyyear/year_2008_high-quality-movies/>reeker movie spoiler</a> kylie inogue van damme movie <a href=http://moviestrawberry.com/films/film_green_lantern_first_flight/>green lantern first flight</a> music to the booty call d <a href=http://royalmp3.net/artist975/burzum-discography/>Burzum</a> karaoke music burning <a href=http://royalmp3.net/artist587/catastrophic-discography/>music in buddhism</a> good burger movie website http://rusfilms.com/page/3/ movie funding <a href=http://rusfilms.com/page/2/>leo movie</a>


alan parsons project music <a href=http://royalmp3.net/artist29103/duplego-discography/>Duplego</a> music of my life radio http://royalmp3.net/artist329/barbra-streisand-discography/ soul plane boondocks music ruckus http://royalmp3.net/artist1064/lycia-discography/ diaper fetish movie http://moviestrawberry.com/films/film_green_day_bullet_in_a_bible/ movie car <a href=http://moviestrawberry.com/hqmoviesbygenres/download-genre_war-movies/?page=8>movie theathers</a> the full south park movie <a href=http://moviestrawberry.com/films/film_the_car/>the car</a> red jumsuit apparatus music <a href=http://royalmp3.net/artist9741/helrunar-discography/>Helrunar</a> randolph music center <a href=http://royalmp3.net/artist3719/robbie-williams-and-kylie-minogue-discography/>paginnis music store upper james hamilton</a> how to develop a movie or tv show http://moviestrawberry.com/films/film_last_of_the_wild_chimps/ movie sally field <a href=http://moviestrawberry.com/countries/?page=91>lakshyam telugu movie free online</a> music from the movie click <a href=http://moviestrawberry.com/films/film_zach_galifianakis_live_at_the_purple_onion/>zach galifianakis live at the purple onion</a> download free ipod music site web <a href=http://royalmp3.net/artist26860/sleep-chamber-discography/>Sleep Chamber</a> music popular in 1957 <a href=http://royalmp3.net/artist2080/coil-discography/>steve taylor music</a> contact the movie http://rusfilms.com/page/4/ shattered glass movie <a href=http://rusfilms.com/page/3/>cars the movie games</a>


computer mall music online shopping shopping shopping 20 <a href=http://royalmp3.net/artist38147/jim-noir-discography/>Jim Noir</a> christmas carol sheet music http://royalmp3.net/artist1308/hortus-animae-discography/ rare suul music http://royalmp3.net/artist1987/cher-discography/ brigde movie http://moviestrawberry.com/hqmoviesbygenres/download-genre_drama-movies/?page=88 beijing english movie theaters <a href=http://moviestrawberry.com/films/film_the_whalers/>will smith future movie</a> free halloween movie sheet music <a href=http://moviestrawberry.com/films/film_911_in_plane_site/>911 in plane site</a> music man bass guitar <a href=http://royalmp3.net/artist9102/chronic-future-discography/>Chronic Future</a> raul rick lopez texas music band trackfive <a href=http://royalmp3.net/artist2755/sear-bliss-discography/>christmas music downloads htm</a> tiffany teen porn movie http://moviestrawberry.com/genres/incredible_variety_of_films/?page=2 movie theater and champaign il <a href=http://moviestrawberry.com/films/film_a_perfect_world/>movie called played on goggle</a> movie showings amc 20 brandon fl <a href=http://moviestrawberry.com/films/film_no_man_s_land/>no man s land</a> beach music awards alabama theatre myrtle beach sc <a href=http://royalmp3.net/artist4039/psycraft-discography/>Psycraft</a> official music hitlist <a href=http://royalmp3.net/artist2192/david-fiuczynski-discography/>lights myspace music</a> adult movie aeads http://rusfilms.com/page/2/ download porn movie free <a href=http://rusfilms.com/page/2/>movie listing in area</a>


music downloads mp3 <a href=http://royalmp3.net/artist21170/onesidezero-discography/>Onesidezero</a> axe music in edmonton http://royalmp3.net/artist4035/perplex-discography/ nigeria tribal music http://royalmp3.net/artist4000/cosmosis-discography/ movie witches of breastwick cast http://moviestrawberry.com/films/film_american_zeitgeist/ movie theaters in st catharines ontario <a href=http://moviestrawberry.com/films/film_freezer_burn/>beastiality movie post</a> music from the lifetiem movie custody <a href=http://moviestrawberry.com/films/film_the_russell_girl/>the russell girl</a> led zeppelin music reviews <a href=http://royalmp3.net/artist12175/stunt-monkey-discography/>Stunt Monkey</a> banjo sheet music <a href=http://royalmp3.net/artist2488/the-eagles-discography/>led zeppelin music reviews</a> writing a movie review http://moviestrawberry.com/films/film_the_black_balloon/ stand by me song in the movie stamd by me <a href=http://moviestrawberry.com/films/film_the_purloined_pup/>true story about fire in the sky movie</a> teenage black female movie and tv stars <a href=http://moviestrawberry.com/films/film_warbirds/>warbirds</a> vanhelsing music <a href=http://royalmp3.net/artist27337/anonymous-and-j.-rider-discography/>Anonymous and J. Rider</a> name any 3 music festivals held in barbados <a href=http://royalmp3.net/artist3096/intermix-discography/>led zeppelin music reviews</a> movie castaway http://rusfilms.com/ mpeg movie editor <a href=http://rusfilms.com/page/2/>myan movie</a>


download music onto an ipod for free <a href=http://royalmp3.net/artist2270/faithless-discography/>Faithless</a> music listener http://royalmp3.net/artist348/fields-of-the-nephilim-discography/ colorado music summit http://royalmp3.net/artist1872/scotch-discography/ raven riley movie http://moviestrawberry.com/films/film_merlin_s_apprentice/ classic movie guide review express stardust <a href=http://moviestrawberry.com/films/film_wishcraft/>ruby cairo movie</a> stateboro movie theatre <a href=http://moviestrawberry.com/films/film_quien_grita_venganza/>quien grita venganza</a> mvgp music <a href=http://royalmp3.net/artist34215/mopreme-shakur-discography/>Mopreme Shakur</a> religious leader literature music <a href=http://royalmp3.net/artist703/boney-james-discography/>music amps</a> movie war jet li cars http://moviestrawberry.com/films/film_the_invisible_man/ movie stream adult <a href=http://moviestrawberry.com/films/film_blank_check/>movie theater cleveland</a> gay porn movie review <a href=http://moviestrawberry.com/films/film_tillies_punctured_romance/>tillies punctured romance</a> korg triton le music workstation 9v input power cable <a href=http://royalmp3.net/artist34413/shack-discography/>Shack</a> webbie music codes <a href=http://royalmp3.net/artist225/kenny-rogers-and-dolly-parton-discography/>music from the show dead like me</a> forced lebian rape fantasy girl on girl movie thumbs http://rusfilms.com/page/2/ original hairspray movie rss feed <a href=http://rusfilms.com/page/2/>free movie download sites</a>


new age christmas music <a href=http://royalmp3.net/artist6725/unwritten-law-discography/>Unwritten Law</a> music from cane http://royalmp3.net/artist2213/marcelo-kayath-discography/ sack buts elizabethan music http://royalmp3.net/artist3180/amina-discography/ tmd movie files http://moviestrawberry.com/films/film_all_the_days_before_tomorrow/ pitch a movie <a href=http://moviestrawberry.com/films/film_beverly_hills_chihuahua/>corpus christi movie theaters</a> cocaine angel movie review <a href=http://moviestrawberry.com/films/film_awakenings/>awakenings</a> foy vance music available for download <a href=http://royalmp3.net/artist2668/april-ethereal-discography/>April Ethereal</a> merengue music <a href=http://royalmp3.net/artist2752/richard-marx-discography/>the music group this day and age</a> uncle bud porno movie sex charlotte niece girl scout http://moviestrawberry.com/films/film_essex_boys/ bible movie deborah <a href=http://moviestrawberry.com/hqmoviesbygenres/download-genre_comedy-movies/?page=7>broken lizard supertroopers movie</a> walk of shame movie <a href=http://moviestrawberry.com/films/film_man_on_the_moon/>man on the moon</a> anna tsuchiya music download <a href=http://royalmp3.net/artist23675/paul-cheneour-discography/>Paul Cheneour</a> cent music video download htm <a href=http://royalmp3.net/artist3718/mark-knopfler-discography/>mp3 music song downloads free</a> popple movie http://rusfilms.com/page/3/ haloween the movie <a href=http://rusfilms.com/>wall street movie</a>


reel big fish trumpet music <a href=http://royalmp3.net/artist2865/midnight-oil-discography/>Midnight Oil</a> raggae music stratford on the avon http://royalmp3.net/artist2142/elias-rahbani-discography/ find bulgarian music online http://royalmp3.net/artist3192/cluster-discography/ babe movie http://moviestrawberry.com/films/film_wire_in_the_blood/ movie thetre reviews <a href=http://moviestrawberry.com/films/film_quick/>free download virgins movie</a> hostel the movie <a href=http://moviestrawberry.com/films/film_loggerheads/>loggerheads</a> consumerism of music <a href=http://royalmp3.net/artist37005/anthony-and-the-johnson-discography/>Anthony and the Johnson</a> passion music <a href=http://royalmp3.net/artist4292/dj-krush-discography/>new jersey catholic wedding music group violin</a> cast and crew of the movie school of rock http://moviestrawberry.com/films/film_from_justin_to_kelly/ convoy movie <a href=http://moviestrawberry.com/films/film_uprising/>latest hindi movie songs</a> disney movie brink <a href=http://moviestrawberry.com/films/film_long_xiong_hu_di/>long xiong hu di</a> michael phelps music <a href=http://royalmp3.net/artist32398/boxcutter-discography/>Boxcutter</a> find music artist by lyrics <a href=http://royalmp3.net/artist2323/max-folmer-discography/>music a g omstead</a> troll movie http://rusfilms.com/page/3/ emmanuelle movie series <a href=http://rusfilms.com/>movie nudes</a>


medical nudity <a href=http://digg.com/food_drink/Need_To_Buy_Levitra_Online_Buy_Levitra_Pills_Here>generic levitra</a> <a href=http://digg.com/food_drink/Buy_Paxil_at_Drugstore_gd_Brand_and_Generic_Discount_Drugs>Cheap Paxil</a> <a href=http://digg.com/health/Buy_Tamiflu_Where_To_Order_Tamiflu_Purchase_Tamiflu_Online>Buying Tamiflu Without Prescription</a> <a href=http://digg.com/food_drink/Cialis_professional_Buy_Drugs_Online_without_prescription>Cheap Cialis</a> <a href=http://digg.com/health/Viagra_professional_Buy_Drugs_Online_without_prescription>Viagra without prescription</a> http://digg.com/food_drink/Need_To_Buy_Levitra_Online_Buy_Levitra_Pills_Here http://digg.com/food_drink/Buy_Paxil_at_Drugstore_gd_Brand_and_Generic_Discount_Drugs http://digg.com/health/Buy_Tamiflu_Where_To_Order_Tamiflu_Purchase_Tamiflu_Online http://digg.com/food_drink/Cialis_professional_Buy_Drugs_Online_without_prescription http://digg.com/health/Viagra_professional_Buy_Drugs_Online_without_prescription


music theory beginners <a href=http://royalmp3.net/artist11974/optimum-wound-profile-discography/>Optimum Wound Profile</a> until your love comes back around sheet music http://royalmp3.net/artist4125/part--arvo-discography/ janzo music http://royalmp3.net/artist3080/bill-douglas-discography/ san antonio mission drive in movie http://moviestrawberry.com/hqmoviesbygenres/download-genre_music-movies/?page=6 pennies from heaven download movie <a href=http://moviestrawberry.com/films/film_the_love_guru/>beowulf the movie</a> free hardcore teen movie <a href=http://moviestrawberry.com/films/film_the_madagascar_penguins_in_a_christmas_caper/>the madagascar penguins in a christmas caper</a> illegal music downloads htm <a href=http://royalmp3.net/artist20917/ezra-discography/>Ezra</a> free sheet music electric guitar downloadable sheet music <a href=http://royalmp3.net/artist1491/morcheeba-discography/>sheet music sunset mountain</a> movie studio policy procedure manual http://moviestrawberry.com/films/film_from_dusk_till_dawn/ pussy licking free movie <a href=http://moviestrawberry.com/films/film_serendipity/>asian porn movie</a> xenosaga movie sep 11 <a href=http://moviestrawberry.com/films/film_snezhnaya_koroleva_the_snow_queen/>snezhnaya koroleva the snow queen</a> music of the night and phantom of the opera and sound <a href=http://royalmp3.net/artist37588/bernd-alois-zimmermann-discography/>Bernd Alois Zimmermann</a> beethoven free music <a href=http://royalmp3.net/artist2098/element-of-crime-discography/>nebblett family music</a> chettukinda pleader telugu movie http://rusfilms.com/page/2/ helen hunt adult movie <a href=http://rusfilms.com/page/4/>berlin news adult movie theater</a>


pdf music <a href=http://royalmp3.net/artist29091/distress-discography/>Distress</a> al stewart folk music http://royalmp3.net/artist1166/riley-lee-and-gabriel-lee-discography/ native american music and retuals http://royalmp3.net/artist4064/zorba-and-logic-bomb-discography/ movie dvd source gathering of eagles http://moviestrawberry.com/films/film_flesh_gordon_meets_the_cosmic_cheerleaders/ new movie jodie foster <a href=http://moviestrawberry.com/films/film_canine_patrol/>movie theaters myrtle beach sc</a> movie nudes <a href=http://moviestrawberry.com/films/film_lizzie_mcguire/>lizzie mcguire</a> our father who art in heaven music <a href=http://royalmp3.net/artist31498/antonio-adolfo-and-no-em-pingo-d-agua-discography/>Antonio Adolfo and No em Pingo d'Agua</a> music player file fetish <a href=http://royalmp3.net/artist458/xenomorph-discography/>flintstones music</a> halloween the movie clips http://moviestrawberry.com/films/film_irma_la_douce/ movie major leauge <a href=http://moviestrawberry.com/films/film_baptists_at_our_barbecue/>gba movie maker</a> cia movie pics <a href=http://moviestrawberry.com/films/film_the_fly/>the fly</a> music lyrics mitch mcvicker <a href=http://royalmp3.net/artist37182/goon-moon-discography/>GOON MOON</a> music lryics <a href=http://royalmp3.net/artist2823/fred-ventura-discography/>goldendisc music shop ireland</a> lord of the flies movie http://rusfilms.com/ worst movie ever <a href=http://rusfilms.com/page/3/>eddie murphy movie ugly big feet</a>


trenton dating <a href=http://loveepicentre.com/>true singles</a> dating ring http://loveepicentre.com/ dating ring


first choice mobile home sales michigan http://www.orderphonetoday.com/jc68-quad-band-dual-cards-dual-standby-with--item65.html t mobile wing cradle <a href=http://www.orderphonetoday.com/a5688-tri-band-dual-card-with-bluetooth--item83.html>mobile homes for sale in utah</a> become a t mobile authorized dealer


ultra mobile pc with a twist http://www.orderphonetoday.com/mind-blowing-quad-band-single-card-with-camera--item73.html mobile registry editor with the mogul <a href=http://www.orderphonetoday.com/tv-w902-quad-band-dual-card-with-bluetooth--item111.html>i hate t mobile</a> jims mobile welding tampa fl


songs for mobile http://www.orderphonetoday.com/t1-quad-band-dual-card-with-bluetooth-unlocked--item92.html mobile dog grooming business <a href=http://www.orderphonetoday.com/n5000-tri-band-dual-card-with-bluetooth--item22.html>update windows mobile 5</a> virgin mobile spc code calculator


back forty mobile homes http://www.orderphonetoday.com/zt2688-quad-band-dual-card-with-analoy-tv--item63.html mobile computing presentations <a href=http://www.orderphonetoday.com/d30-dual-band-dual-card-with-dvb-t-tv-function--item69.html>t mobile wing game</a> technology in mobile gaming


bonnevilla mobile home http://www.orderphonetoday.com/mini-i9-3g-tv-quad-band-dual-card-with-analog--item78.html sales of mobile drill b 90 <a href=http://www.orderphonetoday.com/n9000-quad-band-dual-card-with-bluetooth--item114.html>free nada mobile home appraisal</a> decks and proch gallery for mobile homes


state of washington mobile scanner law http://www.orderphonetoday.com/?action=users kiss listings mobile homes <a href=http://www.orderphonetoday.com/k002-quad-band-single-card-with-camera-touch--item56.html>knobvue estates mobile home park in beaver county pa</a> used mobile homes and campers in virginia


mobile command centers http://www.orderphonetoday.com/f013-quad-band-dual-card-with-analog-tv-wifi--item16.html mobile homeowner insurance <a href=http://www.orderphonetoday.com/da-peng-t918-quad-band-dual-card-with-bluetooth--item125.html>threaded sms app for windows mobile</a> mobile phone uploader


windows mobile countdown timer http://www.orderphonetoday.com/t2000-quad-band-dual-card-with-wifi-analog-tv--item71.html mobile kitchen sales texas <a href=http://www.orderphonetoday.com/tv-k791-quad-band-dual-card-with-bluetooth--item70.html>treo 750 wm5 windows mobile 5 software</a> motorola mobile tools free software


jewelry custom designs http://royal-jewelry.info/products/14k-3-1mm-lite-flat-curb-chain-p4073.html jewelery union square san francisco <a href=http://royal-jewelry.info/products/10k-8-2mm-light-flat-curb-link-bracelet-p3401.html>Yellow Rubber Cancer Awareness Bracelets</a> jewelry made by souix indians


Index

Feed

Other

Link

Pathtraq

loading...