服务器想要发送消息到客户端应用程序(java脚本)。 如果客户端得到这个消息,它会激活(实时) 我应该使用socket.io吗? 可以使用什么样的库或方法?服务器和客户端套接字编程?
回答
这取决于你喜欢什么技术。 WebSockets非常适合解决实时问题。 Socket.IO能够触发客户端和服务器端的事件,并对另一端的事件做出反应。
Socket.IO在Node JS服务器上运行良好。 (http://nodejs.org/)
在此示例中(https://github.com/Automattic/socket.io/tree/master/examples/chat),您看到通过socket.io实现的聊天。您可以简单地用交换机在客户端触发事件,而不是将结果显示给用户屏幕。
socket编程
插座提供一种使用TCP两台计算机之间的通信机制。客户端程序在通信结束时创建套接字并尝试将该套接字连接到服务器。
建立连接时,服务器在通信结束时创建一个套接字对象。客户端和服务器现在可以通过写入和读取套接字进行通信。
java.net.Socket类表示一个套接字,并且java.net.ServerSocket类为服务器程序提供了一种机制来侦听客户端并与它们建立连接。
服务器实例化一个ServerSocket对象,表示哪个端口号是通信上发生 - 建立使用套接字两台计算机之间建立TCP连接时
下面的步骤发生。
服务器调用ServerSocket类的accept()方法。此方法一直等到客户端连接到给定端口上的服务器。
服务器等待后,客户端实例化一个Socket对象,指定要连接的服务器名称和端口号。
Socket类的构造函数尝试将客户端连接到指定的服务器和端口号。如果通信已建立,则客户端现在具有能够与服务器通信的Socket对象。
在服务器端,accept()方法返回对连接到客户端套接字的服务器上的新套接字的引用。
连接建立后,可以使用I/O流进行通信。每个套接字都有一个OutputStream和一个InputStream。客户端的OutputStream连接到服务器的InputStream,客户端的InputStream连接到服务器的OutputStream。
有两种类型的SOKET:
服务器套接字 - 创建于()绑定到一个端口,听()用于连接()从客户端。所以服务器只是在等待一个对话,并没有启动一个。
客户端套接字 - 创建连接()到listen()服务器。客户端启动连接。
服务器应用
进口java.io. ; import java.net。;
公共类ServerApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
ServerSocket Server_Socket;
Server_Socket = new ServerSocket(5555);
Socket clientSocket = null;
clientSocket = Server_Socket.accept();
DataInputStream input;
input = new DataInputStream(clientSocket.getInputStream());
System.out.println(input.readUTF());
DataOutputStream output;
output = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "", str2 = "";
while (!str.equals("stop"))
{
str = input.readUTF();
System.out.println("client says: " + str);
str2 = br.readLine();
output.writeUTF(str2);
output.flush();
}
input.close();
clientSocket.close();
Server_Socket.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
客户端应用
进口java.io. ; import java.net。;
公共类ClientApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Socket Client_Socket;
Client_Socket = new Socket("localhost", 5555);
DataInputStream input;
input = new DataInputStream(Client_Socket.getInputStream());
DataOutputStream output;
output = new DataOutputStream(Client_Socket.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "", str2 = "";
while (!str.equals("stop")) {
str = br.readLine();
output.writeUTF(str);
output.flush();
str2 = input.readUTF();
System.out.println("Server says: " + str2);
}
output.flush();
output.close();
Client_Socket.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
- 1. PHP套接字服务器/客户端
- 2. 客户端服务器udp套接字
- 3. 套接字java客户端服务器
- 4. 客户端 - 服务器套接字
- 5. 服务器/客户端套接字
- 6. 客户端服务器套接字C#
- 7. Python服务器客户端套接字
- 8. Java套接字客户端/服务器
- 9. Python中的客户端服务器套接字编程
- 10. 服务器客户端:套接字编程
- 11. java客户端服务器套接字编程实现问题
- 12. 服务器的客户端套接字编程输出困难
- 13. 客户端服务器套接字编程c-linux
- 14. 套接字编程客户端服务器java
- 15. 客户端 - 服务器套接字编程Java
- 16. 服务器/客户端使用套接字编程
- 17. 客户套接字编程在Java中 - 从服务器端
- 18. 套接字编程。服务器客户端通信
- 19. 传递在客户端服务器之间的套接字编程客户端服务器C
- 20. C套接字服务器,Java套接字客户端:阻塞!
- 21. Python套接字客户端到Java套接字服务器
- 22. 客户端 - 服务器Unix套接字和端口转发
- 23. Python Web服务与套接字编程客户端/服务器设计
- 24. 同时关闭服务器和客户端套接字连接
- 25. 客户端和服务器Android套接字连接
- 26. 无法连接Java套接字服务器和客户端
- 27. 客户端和服务器套接字连接
- 28. UDP套接字编程中的不同语言的客户端和服务器
- 29. 使用WiFi和java套接字编程的服务器 - 客户端聊天
- 30. C:2客户端和1服务器中的UDP套接字编程