Java网络编程:Socket编程、HTTP协议、TCP/IP协议等

9,946次阅读
没有评论

共计 2522 个字符,预计需要花费 7 分钟才能阅读完成。

在 Java 开发中,网络编程是非常重要的一部分。本文将介绍 Java 网络编程中比较常用的技术:Socket 编程、HTTP 协议、TCP/IP 协议等,并结合具体实例进行说明。

一、Socket 编程

Socket 编程是一种基于网络的通信方式,它允许应用程序通过网络发送和接收数据。在 Java 中,我们可以使用 Socket 类来创建一个 Socket 连接,并使用 InputStream 和 OutputStream 类来读写数据。

下面是一个简单的 Socket 编程示例:

import java.net.*;

import java.io.*; public class SocketExample {public static void main(String[] args) throws IOException { String serverName = "www.baidu.com"; int port = 80; Socket socket = new Socket(serverName, port); OutputStream outputStream = socket.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream, true); printWriter.println("GET / HTTP/1.1"); printWriter.println("Host: www.baidu.com"); printWriter.println(); InputStream inputStream = socket.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = bufferedReader.readLine()) != null) {System.out.println(line); } socket.close();} }

这个例子创建了一个 Socket 连接到百度首页(端口 80),并发送了一个 HTTP GET 请求。然后从 InputStream 读取服务器返回的数据,并把它们打印出来。

二、HTTP 协议

HTTP 协议是 Web 上的一种应用层协议,它定义了客户端和服务器之间的通信方式。HTTP 协议使用 TCP 作为传输协议,并使用 URL 来定位资源。在 Java 中,我们可以使用 URLConnection 类来发送 HTTP 请求和读取服务器响应。

下面是一个使用 URLConnection 发送 HTTP 请求的示例:

import java.net.*;

import java.io.*; public class HttpExample {public static void main(String[] args) throws IOException {URL url = new URL("http://www.baidu.com/"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) {System.out.println(line); } connection.disconnect();} }

这个例子创建了一个 URLConnection 对象,并从中获取 InputStream 来读取服务器响应的数据。

三、TCP/IP 协议

TCP/IP 协议是 Internet 上的一种传输协议,它定义了数据如何在网络上传输。在 Java 中,我们可以使用 Socket 和 ServerSocket 类来实现 TCP/IP 协议的通信。

下面是一个使用 ServerSocket 和 Socket 实现简单的客户端 / 服务器通信的示例:

import java.net.*;

import java.io.*; public class TcpExample {public static void main(String[] args) throws IOException {ServerSocket serverSocket = new ServerSocket(8888); System.out.println("Waiting for client..."); Socket clientSocket = serverSocket.accept(); System.out.println("Client connected."); OutputStream outputStream = clientSocket.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream, true); printWriter.println("Hello, client!"); InputStream inputStream = clientSocket.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = bufferedReader.readLine()) != null) {System.out.println("Client said:" + line); } clientSocket.close(); serverSocket.close();} }

这个例子创建了一个 ServerSocket 对象来监听端口 8888 上的连接请求。当客户端连接到该端口时,服务器将发送一条消息给客户端,并等待接收来自客户端的消息。

原文地址: Java 网络编程:Socket 编程、HTTP 协议、TCP/IP 协议等

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-20发表,共计2522字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)