Java Socket和ServerSocket在使用端口上的区别

2023-11-22

在服务器端,我们使用

Socket server = serverSocket.accept();

创建一个套接字。创建套接字后,我们可以创建一个新线程来处理该套接字的输入/输出流。因此,如果有进一步的连接请求进来,我们可以返回监听同一端口并创建新的套接字。由于我们已经在特定端口创建了 ServerSocket,当然我们不能再次在该端口创建另一个 ServerSocket。

那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字? (类似于Web服务器的作用)

实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定我们想要使用的本地端口。在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?既然客户端没有“监听”的概念,我们是否可以做像ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?

我很困惑客户端如何处理端口和套接字,因为我正在将 ServerSocket 与客户端套接字进行比较。

请指出我正确的方向,我知道我的想法是错误的。非常感谢。


那么根据我的理解,我是否可以得出结论,在服务器端,我们可以在一个端口下创建多个套接字? (类似于Web服务器的作用)

你对你的术语感到困惑。ServerSocket.accept() accepts a 联系,并将端点包装在Socket。端点与本地端口号相同ServerSocket,根据定义RFC 793,因此包装也是如此Socket.

实际上我的问题是,在客户端,当我们创建套接字时,我们可以指定我们想要使用的本地端口。

我们可以,但我们很少这样做。

在该本地端口成功创建客户端套接字后,我们可以将该端口重用于其他客户端套接字吗?

No.

该端口是否永久绑定到套接字,直到套接字关闭(或端口关闭)?

是的,或者相反:套接字绑定到端口。

既然客户端没有“监听”的概念,我们是否可以做像ServerSocket一样的事情(参考ServerSocket可以在一个端口下创建多个套接字)?

No.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Socket和ServerSocket在使用端口上的区别 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • Connect:非socket上的socket操作

    我是unix网络编程的新手 我尝试编写一个程序来连接到Google的服务器 但是 我在使用 connect 函数时遇到错误 操作系统 OS X 连接错误 在非套接字上进行套接字操作 我已经研究了4个小时 但我无法找出问题所在 这是我的代码
  • 3D刚体平移和旋转的python实现

    我一直在尝试找出如何使用 python 解决以下问题 我们有点 a b c d 形成刚体 一些不为人知的3D平移和旋转应用于刚体 我们现在知道 a b c 的坐标 我们想要计算 d 的坐标 到目前为止我所知道的 由于万向节锁等原因 尝试通过
  • 如何重写 Spring Data CrudRepository 上的删除方法?

    我有一些无法删除的对象 并且必须更新名为 已删除 的公共字段来代替它 我读there我可以使用编写通用查询 entityName 因此我试图覆盖CrudRepository delete 像这样的方法 public interface De
  • Make +y UP,移动原点 C# System.Drawing.Graphics

    我希望原点位于窗口的中心 o gt NET 希望它位于左上角 gt V 点网和我正在努力相处 有谁知道如何在 C 中仅使用 Graphics 对象来做到这一点 Graphics TranslateTransform 不会执行此操作 因为它会
  • 使用 Axis2 附加客户端证书?

    是否可以轻松地将客户端证书附加到使用 wsdl2java 生成的 Axis2 存根 我需要根据每个请求动态更改客户端证书 因此简单地将其存储在密钥库中不适用于我们的情况 我找到了针对非 SOAP 调用执行此操作的示例 但找不到与使用 Axi
  • 来自 AJAX 调用的 res.redirect

    我正在尝试在 ajax 之后进行重定向put要求 我计划使用纯 JS 客户端进行验证 Client document ready function login gt var username name username val var pa
  • 在Eclipse中,是否可以找到项目中采用某种参数类型的所有方法?

    这基本上就是我的问题 我正在参数化方法中将所有方法 ArrayList 转换为 HashMap 但我不想将所有 ArrayList 转换为 HashMap 因为有一些方法是在本地使用的 这更多的是出于好奇 但它会很有用 那么 在 Eclip
  • 带有图像

    我将 JSF 与 Primefaces 一起使用 我想使用仅包含图像的单选按钮按钮集 但我无法使其工作 这是代码
  • 我应该将 Maven 项目的应用程序配置文件放在哪里?

    我正在使用Maven 应用程序组装器用于从我的 Java 项目生成独立可执行文件的插件 应用程序读取配置文件 包括 Spring 文件 应用程序汇编器插件有一个选项 默认激活 可以将 etc 目录添加到应用程序的类路径中 但是我应该怎么做才
  • 来自类的 Java 资源与线程

    有什么区别 getClass getResource some resource file txt vs Thread currentThread getContextClassLoader getResource some resourc
  • 如何在 OpenCV 中找到二值骨架图像的端点?

    我有一个二进制像素的骨架 如下所示 我想找到该骨架端点的坐标 在本例中有四个 如果适用 请使用 Open CV 效率很重要 因为我正在从视频源中实时分析其中的许多内容 并且需要同时做许多其他事情 请注意 抱歉 上面的屏幕截图已调整了人工制品
  • ggplot2:将各个facet_wrap面保存为单独的绘图对象

    我是以下的忠实粉丝facet wrap 尽管在 R 中分割大数据框 绘制多个图并进行探索的速度很快 但它并不总是在纸张或幻灯片中呈现的最佳工具 我发现自己在比例 binwidths 和字体大小上浪费了很多时间 并最终在 inkscape 上
  • C# 创建没有 的 XML 输出文件

    我是 C 开发新手 所以这里可能是一个非常简单的问题 我试图获得这样的输出
  • 自定义 pip install 命令未运行

    我正在尝试为我正在编写的 pip 库运行一些预安装命令 我的安装文件如下所示 from setuptools import setup from setuptools command install import install class
  • 如何对 __m128 类型变量中的浮点元素取反(更改符号)?

    是否有任何单个指令或函数可以反转符号 m128 内的每个浮点数 IE a r0 r1 r2 r3 gt a r0 r1 r2 r3 我知道这可以通过 mm sub ps mm set1 ps 0 0 a 但它不是可能很慢吗 mm set1
  • 在WPF网格中绘制对角线

    我想我正在尝试在 WPF 中做一些相对简单的事情 但我无法弄清楚如何做 我认为我可能正处于将其过于复杂化的边缘 如果我有一个 3 行 3 列的网格 并且我想连接两个单元格的角以创建对角边框 那么最好的方法是什么 理想情况下 如果调整控件的大
  • 在 Angular 8 中,如何从浏览器控制台访问注入的服务?

    我正在使用 Angular 8 我想从浏览器控制台 Chrome 开发工具 访问注入的服务 我可以像这样从浏览器控制台访问注入器 ng probe document querySelector app root injector 我想在开发
  • 声音文件作为 android MediaPlayer 中的变量

    在学习 android java 的过程中 我想创建一个可以从原始文件夹中播放特定声音的函数 我试图将声音文件定义为字符串 以便可以重用该函数 但是我陷入了 无法解析符号 的困境 public class MainActivity exte
  • 与共享主键的一对一关系生成 n+1 个选择;有什么解决方法吗?

    想象一下关系数据库中有 2 个表 例如人员和计费 这些实体之间定义了一个 非强制性 OneToOne 关联 并且它们共享 Person 主键 即 PERSON ID 在 Person 和 Billing 中定义 并且它是后者的外键 通过命名
  • Java Socket和ServerSocket在使用端口上的区别

    在服务器端 我们使用 Socket server serverSocket accept 创建一个套接字 创建套接字后 我们可以创建一个新线程来处理该套接字的输入 输出流 因此 如果有进一步的连接请求进来 我们可以返回监听同一端口并创建新的