我已经阅读了很多关于这个问题的线索,我无法看到它的"真实"解决方案.
我做了一个java项目 - 这是一个rmi服务器,我有一个Android应用程序,假设也是一个rmi客户端.
当我检查服务器是否工作时,我没有足够明智地在一个Android项目上测试客户端,我在一个简单的java项目上做了一个测试客户端.
现在,当我试图将我的Android应用程序连接到服务器时,我失败了因为android项目无法识别java rmi包.
为什么会这样?我该怎么办?
我已经开始构建一个tcp服务器,它将能够接受许多客户端,并同时从所有客户端接收新数据.
到目前为止,我使用IOCP用于tcp服务器,这非常简单和舒适,但这次我想使用Async/Await技术.那是在C#5.0中发布的.
问题是,当我开始编写使用异步服务器/ AWAIT,我想通了,在TCP多用户服务器的使用情况,异步/ AWAIT技术.并且常规同步方法将起作用.
这是一个更具体的简单示例:
class Server
{
private TcpListener _tcpListener;
private List<TcpClient> _clients;
private bool IsStarted;
public Server(int port)
{
_tcpListener = new TcpListener(new IPEndPoint(IPAddress.Any, port));
_clients = new List<TcpClient>();
IsStarted = false;
}
public void Start()
{
IsStarted = true;
_tcpListener.Start();
Task.Run(() => StartAcceptClientsAsync());
}
public void Stop()
{
IsStarted = false;
_tcpListener.Stop();
}
private async Task StartAcceptClientsAsync()
{
while (IsStarted)
{
// ******** Note 1 ********
var acceptedClient = await _tcpListener.AcceptTcpClientAsync();
_clients.Add(acceptedClient);
IPEndPoint ipEndPoint = (IPEndPoint) …Run Code Online (Sandbox Code Playgroud)