Java聊天室之实现运行服务器与等待客户端连接

下面是详细的讲解。

一、实现运行服务器

  1. 开启一个Java项目,在项目中创建一个ServerSocket对象,指定监听的端口号。这里以6666为例:
// 创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(6666);
  1. 使用accept()方法等待客户端连接。该方法会一直阻塞,直到有客户端连接,然后返回一个表示已连接的Socket对象。
// 使用accept()方法等待客户端连接,返回已连接的Socket对象
Socket socket = serverSocket.accept();
  1. 在连接成功后,可以通过获得的Socket对象获取到该客户端的IP地址和端口号,并在控制台打印出来作为提示。
// 获取客户端的IP地址和端口号
String ip = socket.getInetAddress().getHostAddress();
int port = socket.getPort();

// 打印出连接信息
System.out.println("客户端" + ip + ":" + port + "已连接");

二、等待客户端连接

  1. 创建一个客户端程序,在该程序中创建一个Socket对象,并指定服务器的IP地址和端口号,这里以本地IP和6666端口为例:
// 创建Socket对象,指定服务器的IP地址和端口号
Socket socket = new Socket("127.0.0.1", 6666);
  1. 在成功连接服务器后,可以通过获取到的Socket对象获得服务器的IP地址和端口号,并在控制台打印出来作为提示。
// 获取服务器的IP地址和端口号
String ip = socket.getInetAddress().getHostAddress();
int port = socket.getPort();

// 打印出连接信息
System.out.println("已连接服务器" + ip + ":" + port);

示例说明一

下面是一个实现运行服务器的完整示例:

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

public class Server {
    public static void main(String[] args) throws IOException {
        // 创建ServerSocket对象
        ServerSocket serverSocket = new ServerSocket(6666);
        System.out.println("服务器已启动,等待客户端连接");

        // 使用accept()方法等待客户端连接
        Socket socket = serverSocket.accept();

        // 获取客户端的IP地址和端口号
        String ip = socket.getInetAddress().getHostAddress();
        int port = socket.getPort();

        // 打印出连接信息
        System.out.println("客户端" + ip + ":" + port + "已连接");

        // 关闭服务器Socket
        serverSocket.close();
    }
}

在该示例中,开启了一个端口为6666的ServerSocket对象,并使用accept()方法等待客户端连接。当有客户端连接成功时,获取到客户端的IP地址和端口号,并打印出提示信息。最后关闭了服务器Socket。

示例说明二

下面是一个等待客户端连接的完整示例:

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

public class Client {
    public static void main(String[] args) throws IOException {
        // 创建Socket对象,指定服务器的IP地址和端口号
        Socket socket = new Socket("127.0.0.1", 6666);
        System.out.println("已连接服务器");

        // 获取服务器的IP地址和端口号
        String ip = socket.getInetAddress().getHostAddress();
        int port = socket.getPort();

        // 打印出连接信息
        System.out.println("服务器" + ip + ":" + port + "已连接");

        // 关闭客户端Socket
        socket.close();
    }
}

在该示例中,创建了一个Socket对象,并指定了服务器的IP地址和端口号。在连接成功后,获取到服务器的IP地址和端口号,并打印出提示信息。最后关闭了客户端Socket。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java聊天室之实现运行服务器与等待客户端连接 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Win9技术预览版下载地址页面曝光:32位版本积将超过3GB

    很抱歉,但我必须告诉您,关于\”Win9技术预览版下载地址页面曝光:32位版本积将超过3GB\”的攻略,我无法提供详细的信息。这是因为\”Win9技术预览版\”并不是一个真实存在的产品,而且在2023年的7月28日,我所了解的最新操作系统是Windows 11。 如果您有关于Windows 11的问题,我将非常乐意帮助您。请告诉我您需要了解的内容,我将尽力为…

    other 2023年7月28日
    00
  • windows安装adb方法及问题解决

    以下是关于Windows安装ADB的方法及问题解决的攻略: 下载ADB 首先,需要从官方网站下载ADB。下载地址为:https://developer.android.com/studio/releases/platform-tools 安装ADB 将下载的ADB压缩包解压到任意目录,例如C:\adb。然后,将该目录添加到系统环境变量中。具体步骤如下: 在W…

    other 2023年5月8日
    00
  • linux命令学习之shift命令

    以下是Linux命令学习之shift命令的完整攻略,包括基本介绍、使用方法、注意事项和示例说明等内容。 1. 基本介绍 shift命令是Linux中的一个内置命令,用于移动令行参数。它可以将命令行参数向左移动一个位置,即将$2$号参数移动到$1$号参数的位置,将3$号参数移动到$2$号参数的位置,以此类推。shift命令通常用于处理命令行参数。 2. 使用方…

    other 2023年5月10日
    00
  • pycharm创建一个python包方法图解

    PyCharm创建一个Python包方法图解 打开PyCharm,创建一个新的项目。 在项目的根目录上右键单击,选择\”New\” -> \”Python Package\”。 在弹出的对话框中,输入包的名称,然后点击\”OK\”。 PyCharm会自动在项目的根目录下创建一个与包名称相同的文件夹,并在其中添加一个__init__.py文件。 在包文件…

    other 2023年10月13日
    00
  • java获取ip地址示例

    Java获取IP地址示例攻略 在Java中,获取IP地址可以通过多种方式实现。下面是一种常见的方法,使用Java的InetAddress类来获取IP地址。 步骤一:导入必要的类 首先,我们需要导入InetAddress类,该类提供了获取IP地址的方法。 import java.net.InetAddress; 步骤二:获取本地IP地址 要获取本地IP地址,可…

    other 2023年7月30日
    00
  • C++中单链表操作的示例代码

    我可以为您讲解C++中单链表的操作及示例代码。具体流程如下: 单链表操作的介绍 单链表是一种常见的数据结构,它由多个节点(结构体)组成,每个节点中都包含了下一个节点的指针。它的特点是插入和删除操作非常高效,但是访问操作需要遍历整个链表,效率较低。 单链表的结构体 首先,我们需要定义一个节点的结构体,来表示链表中的每个元素。例如: struct Node { …

    other 2023年6月27日
    00
  • 越狱后iPhone手机不断重启怎么办 越狱后iPhone手机不断重启解决方法

    越狱后iPhone手机不断重启解决方法 问题描述 越狱是指绕过苹果的保护机制,使得用户可以安装来自第三方应用商店的应用。但是,越狱后有时候可能会出现手机不断重启的情况,导致手机无法正常使用。 问题原因 造成越狱后iPhone手机不断重启的原因主要有以下两种: 1.问题应用:越狱后安装了不兼容的应用或者类库,导致系统崩溃,进而导致手机不断重启。 2.不完整的越…

    other 2023年6月27日
    00
  • Android 开发使用Activity实现加载等待界面功能示例

    针对“Android 开发使用Activity实现加载等待界面功能示例”的完整攻略,我将分以下几个步骤进行详细讲解: 创建等待界面布局文件 创建等待界面Activity并绑定布局文件 在需要创建等待界面的Activity中调用等待界面Activity 通过Handler消息机制关闭等待界面Activity 下面我将分别对以上几个步骤进行具体讲解。 1. 创建…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部