Java网络编程基础与Socket通信实战

简介: Java网络编程基础与Socket通信实战

Java网络编程基础与Socket通信实战

1. Java网络编程基础概述**

Java作为一种广泛应用于网络编程的语言,提供了丰富的API和库,使得开发者可以轻松地实现各种网络通信应用。其中,Socket编程是其核心部分,用于实现不同计算机之间的通信。

2. Socket的基本概念

Socket是网络编程中的基本概念,它定义了两个端点之间的通信链接。一个Socket通常包含了IP地址和端口号,通过它可以实现客户端与服务器之间的数据传输。

3. Java中的Socket编程示例

3.1 客户端示例

以下是一个简单的Java客户端示例,通过Socket连接到服务器,并发送数据:

package cn.juwatech.network;

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

public class ClientExample {
   

    public static void main(String[] args) {
   
        String serverName = "localhost";
        int port = 8080;

        try {
   
            System.out.println("连接到服务器:" + serverName + ",端口号:" + port);
            Socket client = new Socket(serverName, port);
            System.out.println("远程主机地址:" + client.getRemoteSocketAddress());

            OutputStream outToServer = client.getOutputStream();
            DataOutputStream out = new DataOutputStream(outToServer);

            out.writeUTF("Hello from " + client.getLocalSocketAddress());

            InputStream inFromServer = client.getInputStream();
            DataInputStream in = new DataInputStream(inFromServer);

            System.out.println("服务器响应:" + in.readUTF());

            client.close();
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

3.2 服务器端示例

以下是一个简单的Java服务器端示例,接收客户端发送的数据并进行响应:

package cn.juwatech.network;

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

public class ServerExample extends Thread {
   
    private ServerSocket serverSocket;

    public ServerExample(int port) throws IOException {
   
        serverSocket = new ServerSocket(port);
    }

    public void run() {
   
        while (true) {
   
            try {
   
                System.out.println("等待远程连接,端口号为:" + serverSocket.getLocalPort() + "...");
                Socket server = serverSocket.accept();
                System.out.println("远程主机地址:" + server.getRemoteSocketAddress());

                DataInputStream in = new DataInputStream(server.getInputStream());
                System.out.println(in.readUTF());

                DataOutputStream out = new DataOutputStream(server.getOutputStream());
                out.writeUTF("连接成功,欢迎访问:" + server.getLocalSocketAddress());

                server.close();
            } catch (IOException e) {
   
                e.printStackTrace();
                break;
            }
        }
    }

    public static void main(String[] args) {
   
        int port = 8080;
        try {
   
            Thread t = new ServerExample(port);
            t.start();
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

4. Socket通信的应用场景

Socket通信广泛应用于网络服务和分布式系统中,例如实现客户端与服务器之间的数据传输、远程方法调用(RPC)、即时通讯等。在互联网应用开发中,Socket编程是构建各种网络服务的基础。

5. 总结

通过本文的介绍,我们深入探讨了Java网络编程的基础知识和Socket通信的实际应用。了解Socket的基本概念和Java中的实现方式,能够帮助开发者更好地理解和应用网络编程技术,实现各种复杂的网络应用程序。

相关文章
|
5月前
|
监控 Linux 测试技术
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
🌟 蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕C++与零拷贝网络编程,从sendfile到DPDK,实战优化服务器性能,毫秒级响应、CPU降60%。分享架构思维,共探代码星辰大海!
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
461 0
|
canal 编解码 运维
飞天洛神云网络再度入选通信顶会 SIGCOMM'24
飞天洛神云网络再度入选通信顶会 SIGCOMM'24
462 12
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
481 6
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
479 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
缓存 网络协议 安全
即时通讯初学者必知必会的20个网络编程和通信安全知识点
即时通讯IM应用开发的初学者很容易迷失在网络编程的复杂性以及通信安全的各种概念里,本文不涉及深度理论知识,尽量通过一句话或几句话让你快速了解20个相关的网络编程和通信安全知识点,希望能助你愉快地开始即时通讯应用开发。
511 0
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
510 11
|
网络协议
计算机网络与通信
计算机网络基本概念:了解计算机网络的定义、功能、分类和拓扑结构(如总线型、星型、环型、树形、网状等)。 网络通信原理:了解网络通信的基本原理、协议和技术,如TCP/IP协议、网络通信设备等。
282 3
|
算法
数据结构之卫星通信网络(BFS)
本文介绍了卫星通信网络及其重要性,并探讨了广度优先搜索(BFS)算法在其中的应用。卫星通信网络通过在轨卫星提供全球覆盖的通信服务,尤其在偏远地区和紧急救援中发挥关键作用。BFS算法用于网络拓扑分析、路径规划和故障排除,确保通信网络的高效运行。文章还包括BFS算法的工作原理、特点、优缺点及其实现代码示例。
469 1
|
传感器 自动驾驶 物联网
探秘 5G 核心网络之 5G RAN:开启高速通信新时代
探秘 5G 核心网络之 5G RAN:开启高速通信新时代
622 4