当前位置:   article > 正文

Java Socket和ServerSocket 使用_java serversocket

java serversocket

在Java中,Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字,而ServerSocket类用于创建服务器套接字。在本文中,我们将讨论Socket和ServerSocket的作用、使用方法以及相关代码示例。

在这里插入图片描述

Socket的作用

Socket是Java中用于创建客户端套接字的类。它提供了一种机制,可以让客户端与服务器建立网络连接,进行数据传输和通信。Socket类实现了TCP/IP协议,可以用于创建基于TCP或UDP的网络连接。

Socket类提供了一些方法,可以用于发送和接收数据。例如,使用Socket类的getInputStream()和getOutputStream()方法,可以获取输入流和输出流,从而读取和写入数据。Socket类还提供了一些其他方法,例如connect()、close()、setSoTimeout()等,用于控制连接的建立和关闭、超时时间等。

ServerSocket的作用

ServerSocket是Java中用于创建服务器套接字的类。它可以监听来自客户端的连接请求,并建立与客户端之间的网络连接。一旦与客户端建立了连接,ServerSocket就可以创建一个新的Socket对象,用于与客户端进行数据传输和通信。

ServerSocket类提供了一些方法,可以用于监听连接请求和创建新的Socket对象。例如,使用ServerSocket类的accept()方法,可以监听连接请求,并返回一个新的Socket对象,用于与客户端进行数据传输和通信。ServerSocket类还提供了一些其他方法,例如bind()、close()、getLocalPort()等,用于控制服务器套接字的创建和关闭、本地端口号等。

Socket和ServerSocket的使用方法

在使用Socket和ServerSocket时,我们需要遵循以下步骤:

创建客户端套接字

首先,我们需要创建一个客户端套接字,用于与服务器建立连接。可以使用Socket类的构造方法创建客户端套接字,例如:

Socket socket = new Socket("localhost", 8080);
  • 1

这个示例中,我们使用Socket类的构造方法创建了一个名为socket的客户端套接字。其中,"localhost"表示服务器的主机名或IP地址,8080表示服务器的端口号。

创建服务器套接字

接下来,我们需要创建一个服务器套接字,用于监听来自客户端的连接请求。可以使用ServerSocket类的构造方法创建服务器套接字,例如:

ServerSocket serverSocket = new ServerSocket(8080);
  • 1

这个示例中,我们使用ServerSocket类的构造方法创建了一个名为serverSocket的服务器套接字。其中,8080表示服务器的端口号。

监听连接请求

一旦创建了服务器套接字,我们需要使用accept()方法监听来自客户端的连接请求,并创建一个新的Socket对象,用于与客户端进行数据传输和通信。可以使用如下代码实现:

Socket socket = serverSocket.accept();
  • 1

这个示例中,我们使用ServerSocket类的accept()方法监听连接请求,返回一个新的Socket对象,用于与客户端进行数据传输和通信。这个方法是阻塞的,直到有客户端连接到服务器为止。

发送和接收数据

一旦与客户端建立了连接,我们就可以使用Socket类的输入流和输出流,发送和接收数据。例如,可以使用如下代码发送数据:

OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, world!".getBytes());
  • 1
  • 2

这个示例中,我们使用Socket类的getOutputStream()方法获取输出流,将字符串"Hello, world!"转换为字节数组,并使用write()方法发送数据。

可以使用如下代码接收数据:

InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String message = new String(buffer, 0, bytesRead);
System.out.println("Received message: " + message);
  • 1
  • 2
  • 3
  • 4
  • 5

这个示例中,我们使用Socket类的getInputStream()方法获取输入流,创建一个1024字节的缓冲区,并使用read()方法从输入流中读取数据。读取的数据存储在缓冲区中,并返回读取的字节数。最后,我们将缓冲区中的数据转换为字符串,并输出到控制台。

关闭套接字

最后,我们需要关闭客户端套接字和服务器套接字,释放资源。可以使用如下代码关闭套接字:

socket.close();
serverSocket.close();
  • 1
  • 2

Socket和ServerSocket的示例代码

下面是一个简单的Socket和ServerSocket的示例代码,实现了一个简单的客户端-服务器应用程序,客户端向服务器发送消息,服务器收到消息并将其输出到控制台。

服务器端代码

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8080);
        System.out.println("Server started...");

        Socket socket = serverSocket.accept();
        System.out.println("Client connected: " + socket.getInetAddress());

        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024];
        int bytesRead = inputStream.read(buffer);
        String message = new String(buffer, 0, bytesRead);
        System.out.println("Received message: " + message);

        socket.close();
        serverSocket.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

客户端代码

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost", 8080);
        System.out.println("Connected to server: " + socket.getInetAddress());

        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("Hello, server!".getBytes());

        socket.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

总结

在Java中,Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字,服务器Socket类用于创建服务器套接字。使用Socket和ServerSocket,我们可以轻松地创建基于TCP或UDP的网络连接,并实现数据传输和通信。在使用Socket和ServerSocket时,我们需要遵循一定的步骤,例如创建套接字、监听连接请求、发送和接收数据,最后关闭套接字。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/146806
推荐阅读
相关标签
  

闽ICP备14008679号