Java 正在启动服务器和客户端之间的通信
当客户机想要建立与服务器的连接时,通信必须始终从客户机开始吗Java 正在启动服务器和客户端之间的通信,java,client-server,Java,Client Server,当客户机想要建立与服务器的连接时,通信必须始终从客户机开始吗 我的意思是第一步必须由客户完成?例如,我有一个客户端,它通过Socket连接到服务器。客户端必须首先发送消息?术语很简单。客户端是向服务器发送请求的进程。因此,是的,通信从客户端开始。有几种解决方案可以在服务器端启动通信: 推送技术或服务器推送描述了一种基于Internet的通信方式,其中对给定事务的请求由发布服务器或中央服务器发起。如果您使用javascript,您可以使用comet技术来进行服务器推送 在java中,还有另一个推
我的意思是第一步必须由客户完成?例如,我有一个客户端,它通过
Socket
连接到服务器。客户端必须首先发送消息?术语很简单。客户端是向服务器发送请求的进程。因此,是的,通信从客户端开始。有几种解决方案可以在服务器端启动通信:
- 推送技术或服务器推送描述了一种基于Internet的通信方式,其中对给定事务的请求由发布服务器或中央服务器发起。如果您使用javascript,您可以使用comet技术来进行服务器推送
- 在java中,还有另一个推送选项是消息驱动通信,其中服务器发送JMS消息,客户端可以进行处理
- 如果使用UDP多播,则可以达到与JMS相同的效果,但级别较低(Java也支持)
您还拥有防火墙和其他网络保护措施,这些措施通常只允许启动从客户端到服务器的连接。服务器无法知道客户端何时要连接到它。所以,如果我们是关于套接字的,例如在java中,客户机可以连接到服务器,服务器可以向该客户机发送消息,而无需客户机首先向服务器发送消息。这里有一个例子 服务器:
int port = 3456;
ServerSocket server = new ServerSocket(port);
Socket socket;
socket = server.accept();
socket.getOutputStream().write(10);
客户:
Socket socket = new Socket("server", 3456);
socket.getInputStream().read()
所以客户端连接到服务器。服务器接受连接并写入要发送到客户端的数据。客户端使用输入流读取此数据。因此,客户端可能不会首先发送消息,而只需要连接到服务器。正是我想要的……谢谢