ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Java入门TCP客户端和服务器应用步伐 2024.7.27 22:14
[打印本页]
作者:
张国伟
时间:
2024-7-28 06:59
标题:
Java入门TCP客户端和服务器应用步伐 2024.7.27 22:14
下面是一个完整的示例,展示怎样使用 Java 的 Socket 和 ServerSocket 类编写一个简单的 TCP 客户端和服务器应用步伐,以及一个简单的聊天应用步伐。代码包括客户端和服务器的实现,可以或许通过 TCP 毗连举行消息互换。
1. TCP 服务器步伐
首先,我们将创建一个简单的 TCP 服务器,它监听特定端口并可以或许接收来自客户端的消息。
Server.java
package gpt;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private static final int port = 12345;//设置监听端口
public static void main(String[] args) {
System.out.println("服务器启动,等待客户端连接...");
try(ServerSocket serverSocket = new ServerSocket(port)) {
while (true)
{
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接:" + clientSocket.getInetAddress());
//创建一个新的线程处理客户端请求
new ClientHandler(clientSocket).start();
}
} catch (Exception e) {
System.err.println("服务器异常: " + e.getMessage());
}
}
}
class ClientHandler extends Thread{
private Socket clientSocket;
public ClientHandler(Socket clientSocket) {
this.clientSocket = clientSocket;
}
@Override
public void run() {
try(BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)) {
String inputlines;
while((inputlines = in.readLine())!=null)
{
System.out.println("收到消息:" + inputlines);
out.println(inputlines.toUpperCase());//发送响应
}
} catch (Exception e) {
System.out.println("客户端处理异常" + e.getMessage());
}
finally {
try {
clientSocket.close();
} catch (IOException e) {
System.out.println("关闭异常连接" + e.getMessage());
}
}
}
}
复制代码
2. TCP 客户端步伐
然后,我们将创建一个简单的 TCP 客户端,它毗连到服务器并可以或许发送消息。
Client.java
package gpt;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Client {
private static final String SERVER_ADDRESS = "localhost"; //服务器地址
private static final int SERVER_PORT = 12345; //服务器端口
public static void main(String[] args) {
try (Socket socket = new Socket(SERVER_ADDRESS, SERVER_PORT);
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Scanner sc = new Scanner(System.in)) {
System.out.println("已连接到服务器,你可以开始聊天");
//新线程用于接收服务器消息
new Thread(() -> {
try {
String severMessage;
while((severMessage = in.readLine())!=null)
{
System.out.println("服务器:" + severMessage);
}
} catch (Exception e) {
System.out.println("接收消息时出错" + e.getMessage());
}
}
).start();
//主线程用于发送信息
String userInput;
while(true)
{
userInput = sc.nextLine();
if(userInput.equalsIgnoreCase("exit"))
{
break;
}
out.println(userInput);//发送信息
}
}
catch (Exception e)
{
System.err.println("连接服务器时出现异常: " + e.getMessage());
}
}
}
复制代码
3. 使用示例
1.编译代码:
使用 javac 编译 Server.java 和 Client.java 文件。
2.运行服务器:首先启动服务器:java Server
3.你应该会看到输出“服务器启动,等候客户端毗连…”。
4.运行客户端:java Client
你可以输入恣意消息,然后按回车键发送到服务器。服务器将以大写情势复兴。
5.结束会话:
在客户端输入 exit 以关闭客户端步伐。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4