bind函数的作用

bind函数的作用建立 tcp 连接的时候服务器端执行流程调用 socket 函数 建立一个套接字 该套接字用于接下来的网络通信调用 bind 函数 将该套接字绑定一个地址和端口号调用 listen 函数 使用该套接字监听连接请求调用 accept 函数 接受该套接字连接请求客户端执行流程调用 socket 函数 创建一个套接字调用 connect 函数 使用该套接字与服务器进行连接服务器端和客户端程序的显著区别在于

建立tcp连接的时候

服务器端执行流程

  1. 调用socket函数,建立一个套接字,该套接字用于接下来的网络通信
  2. 调用bind函数,将该套接字绑定一个地址和端口号
  3. 调用listen函数,使用该套接字监听连接请求
  4. 调用accept函数,接受该套接字连接请求

客户端执行流程

  1. 调用socket函数,创建一个套接字
  2. 调用connect函数,使用该套接字与服务器进行连接

服务器端和客户端程序的显著区别在于客户端程序不需要调用bind函数,bind函数的作用是将套接字绑定一个IP地址和端口号。如果套接字没有使用bind函数绑定地址和端口,那么调用listen函数和connect函数的时候内核会自动为套接字绑定。由此可知,如果没有使用bind函数,也是可以的。看起来好像bind函数是多余的,但事实并不是这样。

我们先来看看listen函数和connect是怎么绑定套接字的,使用的是当前系统中空闲端口的套接字。

这样的话,服务器端的程序不关心客户端的IP地址,也就说是对应的端口号是内核临时指派的一个端口,是随机的,每次执行服务器程序的时候,使用的都是不同的端口。但是在客户端是需要指定通信的服务器的端口的,如果不使用bind函数,每次的端口是随机的话,那么每次重启服务程序之后都要对客户端的程序进行调整,这样做不仅不合理,而且工作量很大,因此在服务器端bind函数作用非常重要

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220887.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:26
下一篇 2026年3月17日 下午7:26


相关推荐

  • linux的rwx权限,linux权限管理:rwx

    linux的rwx权限,linux权限管理:rwx标签:rwx权限管理简介:r,w,x对文件及目录进行权限管理,从而达到文件及目录管理。1、rwx对于文件而言:r:可读,可以使用类似cat等命令查看文件内容;w:可写,可以编辑或删除此文件;x:可执行,exacutable,可以命令提示符下当作命令提交给内核运行;2、rwx对于目录而言:r:可以对此目录执行ls以列出内部的所有文件;w:可以在此目录创建文件;x:可以使用cd切换进此目录,也可以使用…

    2022年6月10日
    65
  • 扣子工作流一键生成商品详情页,coze扣子工作流搭建教程,通俗易懂实操教学

    扣子工作流一键生成商品详情页,coze扣子工作流搭建教程,通俗易懂实操教学

    2026年3月13日
    2
  • latex中大括号多行公式多个编号_excel表格公式小括号和大括号

    latex中大括号多行公式多个编号_excel表格公式小括号和大括号latex中想要给每种情况分别编号成(a)(b),如下所示:首先需要引入的包有:%大括号子公式编号需要用到的包\usepackage{CJK}\usepackage{indentfirst}\usepackage{amsmath}\usepackage{cases}输入的代码有:\begin{subnumcases} {f(x)=} x^3&,$x>0$\\ -x^3&,$x\leq0$\end{subnumcases}…

    2022年10月9日
    4
  • android toast位置_android studio toast不显示

    android toast位置_android studio toast不显示关键词:Android,Appium,Python,Toast1、什么是toast?toast是一个浮动的显示块,在Android中主要用于提示信息,超时后退出,常用于提示一些不是那么重要的信息;如果是重要的信息,会使用notification。toast比较难定位,一来因为它时间很短,一般3秒左右;二来toast元素一般不写在XML中,代码中直接去调用。Toast.makeText(getApp…

    2025年11月8日
    6
  • hive类型转换_sqlserver数据类型转换

    hive类型转换_sqlserver数据类型转换hive数据类型转换规则及转换原则,日期类型转换

    2026年2月9日
    4
  • 2021-08-12 WPF控件专题 DataGrid控件详解

    2021-08-12 WPF控件专题 DataGrid控件详解1 DataGrid 控件介绍 DataGrid 简介 MultiSelecto 条目控件网格控件 可以自定义网格显示的数据的控件自定义网格 列的形式 ListView 类似网格控件 GridViewGrid DataTemplate 常用属性 RowHeaderTem 行标题模板 CanUserAddRo 是否添加新行 IsReadOnly 是否可以编辑其中的值 Ve

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号