Java Socket通信:客户端和服务器端实例

原创 我不是女神ヾ 2024-10-22 03:15 144阅读 0赞

在Java中,Socket通信是建立客户端与服务器端双向通信的一种方式。下面我会提供一个简单的客户端和服务端实例。

  1. 客户端(ServerThread.java):
  1. import java.io.*;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. public class ServerThread implements Runnable {
  5. private ServerSocket serverSocket;
  6. public ServerThread(int port) {
  7. try {
  8. serverSocket = new ServerSocket(port);
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. }
  12. }
  13. @Override
  14. public void run() {
  15. try (Socket clientSocket = serverSocket.accept()) {
  16. System.out.println("New client socket : " + clientSocket);
  17. // 在这里可以实现读写等通信操作
  18. String messageFromClient = "Message from Client";
  19. clientSocket.getOutputStream().write(messageFromClient.getBytes()));
  20. System.out.println("Sent message to client : " + messageFromClient);
  21. clientSocket.close();
  22. } catch (IOException e) {
  23. e.printStackTrace();
  24. }
  25. }
  26. public static void main(String[] args) throws IOException {
  27. int port = 1234; // 请替换为实际使用的端口
  28. ServerThread serverThread = new ServerThread(port);
  29. Thread thread = new Thread(serverThread);
  30. thread.start();
  31. System.out.println("Server is running on port : " + port);
  32. }
  33. }
  1. 服务器端(Client.java):
  1. import java.io.*;
  2. import java.net.Socket;
  3. public class Client {
  4. public static void main(String[] args) throws IOException {
  5. String serverAddress = "localhost"; // 请替换为实际服务器地址
  6. int serverPort = 1234; // 请替换为实际使用的端口
  7. Socket socket = new Socket(serverAddress, serverPort));
  8. System.out.println("Connected to Server on port : " + serverPort);
  9. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
  10. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));
  11. String clientMessage = "Hello from Client!";
  12. out.write(clientMessage.getBytes());
  13. System.out.println("Sent message to Server : " + clientMessage);
  14. // 读取服务器响应
  15. String responseFromServer = in.readLine();
  16. System.out.println("Received response from Server: " + responseFromServer);
  17. socket.close();
  18. }
  19. }

以上代码实现了客户端向服务器发送消息,以及接收服务器的响应的功能。记得在实际使用时替换localhost1234为你的服务器地址和端口号。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,144人围观)

还没有评论,来说两句吧...

相关阅读