menacher / java-game-server

Jetserver is a high speed nio socket based multiplayer java game server written using Netty and Mike Rettig's Jetlang.It is specifically tuned for network based multiplayer games and supports TCP and UDP network protocols.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jetclient at android

nikolaykuz opened this issue · comments

Please, let us know whether it is possible to use jetclient for android app, and if not what kind of modifications would be necessary. Thank

Hi,
I have successfully used jeclient on android.

I have never used Android so I need to check possibility. Do you need to build the whole project for android you can just take jar-files and add to android project?

As far as jetserver is a developing project I used sources only. I added jetclient to dependencies of android-maven project. And voilà!

Yahuen, Thanks for responding back. I have not tried jetclient on Android, its good to know that it works fine.

Hi Yauhen Lazurkin, I m trying jetclient on android, but its giving error.. java.net.SocketException: sendto failed: EINVAL (Invalid argument). what might gone wrong....please help.

Could you give the full stack trace?

10-01 11:12:09.383: W/System.err(31666): java.net.SocketException: sendto failed: EINVAL (Invalid argument)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): An exception was thrown by ChannelFutureListener.
10-01 11:12:09.393: W/DefaultChannelFuture(31666): java.lang.RuntimeException: java.net.SocketException: sendto failed: EINVAL (Invalid argument)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.NettyUDPClient$2.operationComplete(NettyUDPClient.java:264)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.DefaultChannelFuture.addListener(DefaultChannelFuture.java:145)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.NettyUDPClient.connect(NettyUDPClient.java:256)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.NettyUDPClient.connect(NettyUDPClient.java:211)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.app.impl.SessionFactory$1.onEvent(SessionFactory.java:246)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.event.impl.DefaultEventDispatcher.fireEvent(DefaultEventDispatcher.java:186)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.app.impl.DefaultSession.onEvent(DefaultSession.java:200)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.handlers.netty.DefaultToClientHandler.messageReceived(DefaultToClientHandler.java:36)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at java.lang.Thread.run(Thread.java:841)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): Caused by: java.net.SocketException: sendto failed: EINVAL (Invalid argument)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:499)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.IoBridge.sendto(IoBridge.java:468)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:182)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at java.net.DatagramSocket.send(DatagramSocket.java:281)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.oio.OioDatagramWorker.write(OioDatagramWorker.java:84)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.oio.OioDatagramPipelineSink.eventSunk(OioDatagramPipelineSink.java:75)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.write(Channels.java:725)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:71)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:59)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.Channels.write(Channels.java:704)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:252)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.jboss.netty.channel.socket.oio.AbstractOioChannel.write(AbstractOioChannel.java:61)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at org.menacheri.jetclient.NettyUDPClient.connect(NettyUDPClient.java:255)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): ... 21 more
10-01 11:12:09.393: W/DefaultChannelFuture(31666): Caused by: libcore.io.ErrnoException: sendto failed: EINVAL (Invalid argument)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.Posix.sendtoBytes(Native Method)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.Posix.sendto(Posix.java:156)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): at libcore.io.IoBridge.sendto(IoBridge.java:466)
10-01 11:12:09.393: W/DefaultChannelFuture(31666): ... 32 more

I think this has something to do with Android OS. Could you check and see if the solution provided at http://stackoverflow.com/questions/14172412/jainsip-on-android-sending-register-throws-exception works for you?

Hi menacher, m following same thread :P... lets see what come out..

Hi menacher, I tried to get into root of the issue, Android doesnt have all classes in its nio package. which are there in use in jetclient.

Oh ok. Do you know specifically which classes are missing. I could try to remove those. Also which version of Android?