当前位置: 首页> 教育> 培训 > 值得浏览的国外网站_多地优化防控举措方便民众生活_信息流优化师_有没有免费推广平台

值得浏览的国外网站_多地优化防控举措方便民众生活_信息流优化师_有没有免费推广平台

时间:2025/7/9 11:43:50来源:https://blog.csdn.net/weixin_73060959/article/details/142361084 浏览次数:0次
值得浏览的国外网站_多地优化防控举措方便民众生活_信息流优化师_有没有免费推广平台

在Java中实现用户之间的通讯可以通过多种方式,这里我将介绍两种常见的方法:使用Socket编程和使用WebSocket。

1. 使用Socket编程

Socket编程是实现网络通讯的基础,它允许两个设备之间进行数据交换。以下是一个简单的Java Socket编程示例,用于实现客户端和服务器之间的基本通讯。

服务器端代码(Server.java)
import java.io.*;
import java.net.*;public class Server {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(1234); // 服务器监听的端口号System.out.println("Server is listening on port 1234");while (true) {Socket socket = serverSocket.accept(); // 接受客户端连接new ServerThread(socket).start(); // 为每个连接创建一个新线程}}
}class ServerThread extends Thread {private Socket socket;public ServerThread(Socket socket) {this.socket = socket;}public void run() {try {BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));OutputStream out = socket.getOutputStream();PrintWriter writer = new PrintWriter(out, true);String inputLine;while ((inputLine = in.readLine()) != null) {System.out.println("Server received: " + inputLine);writer.println("Echo: " + inputLine);}} catch (IOException e) {e.printStackTrace();} finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}}
}
客户端代码(Client.java)
import java.io.*;
import java.net.*;public class Client {public static void main(String[] args) throws IOException {Socket socket = new Socket("localhost", 1234); // 连接到服务器BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter out = new PrintWriter(socket.getOutputStream(), true);BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));new Thread(() -> {try {String serverResponse;while ((serverResponse = in.readLine()) != null) {System.out.println("Server says: " + serverResponse);}} catch (IOException e) {e.printStackTrace();}}).start();String userInput;System.out.println("Enter messages (leave empty line to quit):");while ((userInput = stdIn.readLine()) != null) {out.println(userInput);if (userInput.trim().isEmpty()) {break;}}socket.close();System.exit(0);}
}

2. 使用WebSocket

WebSocket提供了全双工通讯,允许服务器主动发送信息给客户端。这通常用于需要实时通讯的应用,如聊天应用。

服务器端代码(使用Spring Boot)

首先,你需要添加Spring Boot的依赖到你的pom.xml文件中:

然后,创建WebSocket配置:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(new ChatHandler(), "/chat").setAllowedOrigins("*");}
}

创建WebSocket处理器:

import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;public class ChatHandler extends TextWebSocketHandler {@Overridepublic void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {for (WebSocketSession s : sessions) {s.sendMessage(new TextMessage("Echo: " + message.getPayload()));}}
}
客户端代码(HTML + JavaScript)
<!DOCTYPE html>
<html>
<head><title>WebSocket Test</title><script>var ws = new WebSocket("ws://localhost:8080/chat");ws.onmessage = function(event) {var message = event.data;console.log(message);document.getElementById('messages').innerHTML += '<li>' + message + '</li>';};function sendMessage() {var input = document.getElementById('messageInput');ws.send(input.value);input.value = '';}</script>
</head>
<body><ul id="messages"></ul><input type="text" id="messageInput"/><button onclick="sendMessage()">Send</button>
</body>
</html>

这两种方法都可以实现用户之间的通讯,选择哪种取决于你的具体需求和应用场景。

关键字:值得浏览的国外网站_多地优化防控举措方便民众生活_信息流优化师_有没有免费推广平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: