Java套接字(Android到Java服务器)

Art*_*lev 5 java sockets

我有一个java程序作为接受连接的服务器运行,我将Android客户端连接到它.客户端连接很长时间到他们的插座.

1)在具有3 Gb RAM的普通机器上,我可以同时服务多少客户端(实际上 - 我现在不谈论端口数量)?

2)如果手机使用3G进行连接,插座是否可能损坏?如果是,我该如何恢复它,还是应该从客户端完成?还是自动完成?经常发生吗?

Jon*_*oni 3

1)取决于服务器为客户端做什么。如果服务器只是接受连接而不执行任何其他操作,它可能可以为数以万计的客户端提供服务。如果服务器执行需要 CPU、内存或 I/O 的操作,它可以为更少的客户端提供服务。

2) 是的,TCP 连接可能会中断,即使是通过有线网络也是如此。如果链接恢复,则套接字连接并未断开;TCP 处理丢失数据的重传。问题是,如果链接没有返回怎么办?如果您使用SO_KEEPALIVE,连接最终将被关闭,但由于默认超时为 2 小时,对此问题敏感的应用程序会实现自己的超时机制。