Java 中的服务器和客户端连接

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12418501/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-31 08:49:19  来源:igfitidea点击:

Server & Client Connection in Java

javajava-server

提问by Bucks

Here is an sample TCP/IP Server and Client programms

这是一个示例 TCP/IP 服务器和客户端程序

TCPServer

TCP服务器

import java.io.*;
import java.net.*;

    class TCPServer
    {
       public static void main(String argv[]) throws Exception
          {
             String clientSentence;
             String capitalizedSentence;
             ServerSocket welcomeSocket = new ServerSocket(6789);

             while(true)
             {
                Socket connectionSocket = welcomeSocket.accept();
                BufferedReader inFromClient =
                   new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
                DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
                clientSentence = inFromClient.readLine();
                System.out.println("Received: " + clientSentence);
                capitalizedSentence = clientSentence.toUpperCase() + '\n';
                outToClient.writeBytes(capitalizedSentence);
             }
          }
    } 

TCPClient

TCP客户端

import java.io.*;
import java.net.*;

class TCPClient
{
 public static void main(String argv[]) throws Exception
 {
  String sentence;
  String modifiedSentence;
  BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
  Socket clientSocket = new Socket("localhost", 6789);
  DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
  BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
  sentence = inFromUser.readLine();
  outToServer.writeBytes(sentence + '\n');
  modifiedSentence = inFromServer.readLine();
  System.out.println("FROM SERVER: " + modifiedSentence);
  clientSocket.close();
 }
}

In that Client i need to send text hi to Server. Onces the server reads that text Hi from Client side it display Client Id with Text is Active now

在该客户端中,我需要向服务器发送文本 hi。一旦服务器从客户端读取文本 Hi,它就会显示带有文本的客户端 ID 现在处于活动状态

采纳答案by CloudyMarble

Use the socket.getInetAddress()to get an InetAddressobject including the IP address then call the InetAddress.getHostAddress()to get it as a string.

使用socket.getInetAddress()获取包含 IP 地址的InetAddress对象,然后调用InetAddress.getHostAddress()以将其作为字符串获取。