当前位置: 首页 > 面试题库 >

网络编程:是否维护套接字?

堵毅然
2023-03-14
问题内容

我目前正在将API从C#转换为具有网络组件的Java。

C#版本似乎在其类使用期间保持输入和输出流以及套接字打开。

这样对吗?

请记住,该应用程序正在根据用户输入发送命令并接收事件,是否为每个“消息”打开一个新的套接字流更为明智?

我正在维护一个ServerSocket来监听服务器抛出的事件,但是我不确定为出站通信维护一个Socket和输出流是一个好主意。

我不太习惯套接字编程。与许多开发人员一样,我通常在需要进行网络连接时在应用程序层工作,而不是在套接字层工作,自从我在大学里完成这些工作已经有5到6年了。

为帮助喝彩。我想这更多的是寻求建议,而不是确定的答案。


问题答案:

在保持连接打开的成本和创建这些连接的成本之间需要权衡。

建立连接需要 花费时间和带宽。您必须进行三向TCP握手,启动新的服务器线程,…

保持连接打开
主要消耗内存和连接。网络连接是操作系统限制的资源。如果连接的客户端太多,则可能会用完可用的连接。这将消耗内存,因为您将为每个连接打开一个线程及其关联状态。

右平衡将根据您的预期使用情况而有所不同。如果您有很多客户端在短时间内进行连接,则关闭连接可能会更有效。如果您有很少的客户端长时间连接,则可能应保持连接打开…



 类似资料:
  • 计算机网络基础 ip地址 为了使网络上的计算机能够彼此识别对方,每台计算机都需要一个IP地址以标识自己。 IPv4:32位,IPv6:64位 OSI七层参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 地址解析 地址解析是指将计算机的协议地址解析为物理地址,即MAC(Medium Access Control)地址,又称为媒体访问控制地址。通常,在网络上由地址解析协议(ARP)

  • 函数 描述 [[socket socket]] 创建一个套接字描述符 [[socketpair socketpair]] 创建一个套接字偶对 [[shutdown shutdown]] 断开套接字连接 [[close close]] 销毁套接字 套接字选项 函数 描述 [[getsockopt sockopt]] [[setsockopt sockopt]] 适用于流式套接字和数据报套接字 流套接

  • 套接字地址结构 地址结构 说明 sockaddr_un UNIX通信域套接字地址 sockaddr_in IPv4套接字地址 sockaddr_in6 IPv6套接字地址 sockddr_un struct sockaddr_un { sa_familly_t sun_family; char sun_path[]; } sockaddr_in /* 在头文件<netinet/in

  • 本文向大家介绍Java套接字(Socket)网络编程入门,包括了Java套接字(Socket)网络编程入门的使用技巧和注意事项,需要的朋友参考一下 网络应用模式主要有: 主机/终端模式:集中计算,集中管理; 客户机/服务器(Client/Server,简称C/S)模式:分布计算,分布管理; 浏览器/服务器模式:利用Internet跨平台。 www(万维网)就是建立在客户机/服务器模式上,以HTML

  • 本文向大家介绍Android编程判断网络连接是否可用的方法,包括了Android编程判断网络连接是否可用的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程判断网络连接是否可用的方法。分享给大家供大家参考,具体如下: 为了提高用户体验,我们在开发 android 应用的过程需要联网获取数据的时候我们首先要做的一步就是: 1.判断当前手机是否打开了网络 2.打开了网络是否

  • 1. 网络编程概述 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上。 由于你的电脑上可能不止浏览器,