androidsocket异步
‘壹’ android socket外网
首先 外网是可以访问的 前提是你的外网地址是固定的
你可以在路由器上设置端口映射(部分路由器不叫这个名称 )
比如说 你在局域网的服务器地址是 192.168.2.3 端口 4000
那么 你可以在上网的路由器上设置 端口映射 设置端口 XXXX 映射到192.168.2.3的4000端口
那么只要你对外网固定地址 XXXX发起socket连接 就会被转到192.168.2.3的端口4000上去
和平常的socket连接一样
至于花生壳,是针对上网时动态IP的情况,每次拨号都分配新的IP
访问花生壳域名,域名就会指向你的动态IP上去
只要能得到动态IP 就和固定IP一样访问了。
java 也可以根据域名获得IP
InetAddress[] myServer = null;
public InetAddress[] getServerIP(String domain) {
try {
myServer = InetAddress.getAllByName(domain);
} catch (UnknownHostException e) {
e.printStackTrace();
}
return (myServer);
}
网上复制的 没编译过 不过看了应该没错
‘贰’ android studio连接io.socket:sokect.io-client服务器的条件
条件是socket协议。
WebSocket是跟随HTML5一同提出的,所以在兼容性上存在问题,这时一个非常好用的库就登场了——Socket.io。
socket.io封装了websocket,同时包含了其它的连接方式,你在任何浏览器里都可以使用socket.io来建立异步的连接。socket.io包含了服务端和客户端的库,如果在浏览器中使用了socket.io的js,服务端也必须同样适用。
socket.io是基于Websocket的Client-Server实时通信库。
socket.io底层是基于engine.io这个库。engine.io为socket.io提供跨浏览器/跨设备的双向通信的底层库。engine.io使用了Websocket和XHR方式封装了一套socket协议。在低版本的浏览器中,不支持Websocket,为了兼容使用长轮询(polling)替代。
‘叁’ 我在做一个android客户端,自己写服务端,由于服务端的经验不多,所以请教各位,帮帮忙!
首先,android客户端与服务器端的通信用socket和http通信都是可以实现的,主要看你的需求是什么,如果需要实时通信,那么选用socket。否则选用http通信。因为socket会建立通信管道。耗费资源过大。
其次,没太明白你说得处理并发量的目标5000是什么意思。不知道是不是可以理解为你要同时与服务器进行多方数据交互。如果是建议你使用socket通信。并且可以将你得客户端并发处理用异步任务的方式处理(当然多线程也可以,因为异步任务本身就是多线程)。android客户端的耗时操作都不要放在UI线程里处理,因为这样会出现5秒响应机制导致你得程序崩溃。
不知道上面的回答有没有帮到你,如果有,希望多给追加点分数,10分除了我估计没人愿意帮你写这么多字回答的