Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。

简介: 【6月更文挑战第23天】Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。客户端连接服务器,发送"Hello, Server!"后关闭。注意Android中需避免主线程进行网络操作。

在Java中创建Socket连接通常涉及到客户端和服务器端的编程。以下是一个简单的例子,说明如何在Java中创建一个基本的Socket连接:

1. 创建服务器端(Server):

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

public class Server {
   
    public static void main(String[] args) throws IOException {
   
        // 创建一个ServerSocket对象,并绑定到特定的端口
        ServerSocket serverSocket = new ServerSocket(8080);

        System.out.println("Server started on port " + serverSocket.getLocalPort());

        while (true) {
   
            // 等待客户端的连接请求
            Socket socket = serverSocket.accept();

            System.out.println("New client connected: " + socket.getInetAddress().getHostAddress());

            // 获取输入流并读取客户端发送的消息
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
   
                System.out.println("Received message from client: " + inputLine);
            }

            // 关闭输入流、输出流和Socket连接
            in.close();
            socket.close();
        }
    }
}
AI 代码解读

2. 创建客户端(Client):

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

public class Client {
   
    public static void main(String[] args) throws IOException {
   
        // 创建一个Socket对象,指定要连接的服务器地址和端口号
        Socket socket = new Socket("localhost", 8080);

        System.out.println("Connected to server at " + socket.getInetAddress().getHostAddress());

        // 获取输出流并向服务器发送消息
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        out.println("Hello, Server!");

        // 关闭输出流、输入流和Socket连接
        out.close();
        socket.close();
    }
}
AI 代码解读

这个例子中,服务器监听在本地主机的8080端口上,等待客户端的连接请求。一旦有客户端连接,服务器就接收客户端发送的消息,并将其打印出来。

请注意,在Android环境中,从主线程直接调用网络操作是不允许的,你需要使用异步任务或者线程来处理网络通信以避免阻塞UI线程。

目录
打赏
0
3
4
1
281
分享
相关文章
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
143 30
java连接kerberos用户认证
java连接kerberos用户认证
95 22
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
120 2
深度探索Python Socket编程:从理论到实践,进阶篇带你领略网络编程的魅力!
【7月更文挑战第25天】在网络编程中, Python Socket编程因灵活性强而广受青睐。本文采用问答形式深入探讨其进阶技巧。**问题一**: Socket编程基于TCP/IP,通过创建Socket对象实现通信,支持客户端和服务器间的数据交换。**问题二**: 提升并发处理能力的方法包括多线程(适用于I/O密集型任务)、多进程(绕过GIL限制)和异步IO(asyncio)。**问题三**: 提供了一个使用asyncio库实现的异步Socket服务器示例,展示如何接收及响应客户端消息。通过这些内容,希望能激发读者对网络编程的兴趣并引导进一步探索。
103 4
|
9月前
|
Python Socket编程:不只是基础,更有进阶秘籍,让你的网络应用飞起来!
【7月更文挑战第25天】在网络应用蓬勃发展的数字时代,Python凭借其简洁的语法和强大的库支持成为开发高效应用的首选。本文通过实时聊天室案例,介绍了Python Socket编程的基础与进阶技巧,包括服务器与客户端的建立、数据交换等基础篇内容,以及使用多线程和异步IO提升性能的进阶篇。基础示例展示了服务器端监听连接请求、接收转发消息,客户端连接服务器并收发消息的过程。进阶部分讨论了如何利用Python的`threading`模块和`asyncio`库来处理多客户端连接,提高应用的并发处理能力和响应速度。掌握这些技能,能使开发者在网络编程领域更加游刃有余,构建出高性能的应用程序。
57 3
网络世界的建筑师:Python Socket编程基础与进阶,构建你的网络帝国!
【7月更文挑战第26天】在网络的数字宇宙中,Python Socket编程是开启网络世界大门的钥匙。本指南将引领你从基础到实战,成为网络世界的建筑师。
95 2
Python Socket编程:打造你的专属网络通道,基础篇与进阶篇一网打尽!
【7月更文挑战第26天】在网络编程领域,Python以简洁语法和强大库支持成为构建应用的首选。Socket编程为核心,实现计算机间的数据交换。
102 1
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解