【Java学习之道】TCPIP套接字编程实例

引言

网络编程是Java学习中不可或缺的一部分,而TCP/IP套接字编程又是网络编程的基础。那么,初学者如何才能快速掌握TCP/IP套接字编程呢?今天我们就来通过一个简单的实例,为你揭示TCP/IP套接字编程的奥秘!

一、什么是套接字

首先,让我们来了解一下什么是套接字。套接字(Socket)是用于在网络上进行通信的一种编程接口,它提供了网络通信的基本功能 。在Java中,我们通常使用java.net包中的Socket类和ServerSocket类来进行套接字编程。

接下来,让我们通过一个简单的实例来学习TCP/IP套接字编程。这个实例将演示如何通过客户端和服务器端的代码来实现一个简单的通信程序。

二、服务器端代码

在服务器端,我们需要创建一个ServerSocket对象来监听指定端口上的连接请求。当客户端连接到服务器时,ServerSocket对象将返回一个Socket对象,我们可以使用这个Socket对象与客户端进行通信。

java 复制代码
import java.net.*;
import java.io.*;

public class TCPServer {
    public static void main(String[] args) throws IOException {
        // 创建ServerSocket对象,监听端口1234
        ServerSocket serverSocket = new ServerSocket(1234);

        System.out.println("Server is running and waiting for client connection...");

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

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

        // 创建输入输出流进行通信
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();

        // 从客户端接收消息并打印
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String message = reader.readLine();
        System.out.println("Received message from client: " + message);

        // 向客户端发送回复消息
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello client, your message has been received!");

        // 关闭连接
        socket.close();
        serverSocket.close();
    }
}

三、客户端代码

在客户端,我们需要创建一个Socket对象来连接到服务器。然后,我们可以使用输入输出流与服务器进行通信。

java 复制代码
import java.net.*;
import java.io.*;

public class TCPClient {
    public static void main(String[] args) throws IOException {
        // 创建Socket对象,连接到服务器的IP地址和端口号
        Socket socket = new Socket("localhost", 1234);

        System.out.println("Connected to server...");

        // 创建输入输出流进行通信
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();

        // 向服务器发送消息
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello server!");

        // 从服务器接收回复消息并打印
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String response = reader.readLine();
        System.out.println("Received response from server: " + response);

        // 关闭连接
        socket.close();
    }
}

结语

通过这个简单的TCP/IP套接字编程实例,我们展示了如何使用Java进行网络编程。这个例子只是网络编程的冰山一角,实际上网络编程涉及的内容还有很多。但是,只要你掌握了基础知识,相信你可以轻松地驾驭更复杂的网络编程任务。希望这个实例能帮助你更好地理解Java中的网络编程,祝你学习愉快!

文 | chwt9299

python 复制代码
print("Hello, world.")

亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n

相关推荐
吃饱了得干活2 小时前
Spring Cloud Gateway 微服务网关:路由、断言、过滤器
java·spring cloud
lwx572804 小时前
探秘InnoDB:搞懂它的内存、线程、磁盘与日志刷盘策略
java·后端
Flynt5 小时前
从Spring Boot 4.0升到4.1,我在Maven和gRPC上栽了跟头
java·spring boot·后端
plainGeekDev6 小时前
Activity 间传值 → Navigation 参数
android·java·kotlin
plainGeekDev6 小时前
onActivityResult → ActivityResult API
android·java·kotlin
Sunia6 小时前
《AgentX 专栏》10-生产部署:3台2C4G云服务器把企业级Agent真正跑起来的完整方案
java·架构
ZhengEnCi7 小时前
J7A-高级Java工程师面试三道灵魂拷问-深度广度与工程素养的终极检验
java·后端
狼爷1 天前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
祎雪双十Gy1 天前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库
java·后端
小锋java12341 天前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统
java