On Sun, Aug 14, 2016 at 2:18 PM, murtuza chhil <chil...@gmail.com> wrote:

> Hi,
>
> I have a simple client that reads a csv file and send it across. When I
> have a netcat server I can see the data come through.
>
> However when I have a Akka stream based server I do see the connection but
> I don't see the data come through.
>
> Could someone be kind enough to let me know where I have screwed up?
>
> Server code
>
>
>         ActorSystem system = ActorSystem.create("System");
>         ActorMaterializer mat = ActorMaterializer.create(system);
>
>         Source<IncomingConnection, CompletionStage<ServerBinding>> 
> serverSource = Tcp
>                 .get(system).bind("127.0.0.1", 6000);
>         serverSource.runForeach(
>                 conn -> {
>                     System.out.println(conn.remoteAddress());
>                     Sink<ByteString, NotUsed> receiveSink = conn
>                             .flow()
>                             .via(Framing.delimiter(
>                                     ByteString.fromString("\r\n"), 100000))
>                             .to(Sink.foreach(str -> {
>                                 System.out.println("< " + str);
>                                 // Thread.sleep(10);
>                             }));
>                     Source<ByteString, NotUsed> emptySource = Source.empty();
>                     emptySource.to(receiveSink).run(mat);
>
> Since you run with an emptySource, the connection will be closed, because
you just completed the output side of your TCP connection (because of the
emptySource) and you have halfClose = false in your bind command (the
default).


>
>
>                 }, mat);
>
> ​
>
>
> Client code : Reads a file, prints it line by and sends it over the
> socket. The connecting and sending part works as I can see the data
> received at a netcat server.
>
>         ActorSystem system = ActorSystem.create("client");
>         ActorMaterializer mat = ActorMaterializer.create(system);
>
>         Flow<ByteString, ByteString, CompletionStage<OutgoingConnection>> 
> serverConnection = Tcp
>                 .get(system).outgoingConnection("127.0.0.1", 6000);
>         Path file = Paths.get("C:\\temp\\Generic.csv");
>         CompletionStage<IOResult> cs = FileIO.fromPath(file)
>
>         .via(Framing.delimiter(ByteString.fromString("\r\n"), 100000))
>                 .map(str -> {
>                     System.out.println(str.utf8String());
>                     return str.concat(ByteString.fromString("\r\n"));
>                 })
>
>                 .via(serverConnection).to(akka.stream.javadsl.Sink.ignore())
>                 .run(mat);
>
> ​
> -chhil
>
> --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/
> current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to akka-user+unsubscr...@googlegroups.com.
> To post to this group, send email to akka-user@googlegroups.com.
> Visit this group at https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Akka Team
Lightbend <http://www.lightbend.com/> - Reactive apps on the JVM
Twitter: @akkateam

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to