小新阿呆 2023-01-26 14:19 采纳率: 0%
浏览 25

客户端与服务端通信,如何找到服务端

问题遇到的现象和发生背景
在学习客户端与服务端的网络通信时遇到一个疑问。
遇到的现象和发生背景,请写出第一个错误信息
 客户端的connect()函数的第二个参数  const struct sockaddr *addr  ,里面有服务端的ip和端口号,
  但是没有子网掩码,(不同的局域网下ip是可以一样的),那凭什么有ip就能找到服务端呢?
用代码块功能插入代码
        struct sockaddr_in serv;
    serv.sin_family = AF_INET;
    serv.sin_port = htons(8888);
    inet_pton(AF_INET, "127.0.0.1", &serv.sin_addr.s_addr);
    int ret = connect(cfd, (struct sockaddr *)&serv, sizeof(serv));
我的解答思路和尝试过的方法
是不是 AF_INET所对应的Ipv4协议里面有所规定,让客户端可以找到服务端?
又或者是connect()函数的底层进行了什么操作?
  • 写回答

1条回答 默认 最新

  • 阳光宅男xxb 2023-01-26 14:35
    关注

    ip地址类似于服务器在网络上的身份证号码,知道ip就能对应到一台服务器。其次,服务器上有多个端口,每个应用程序使用的端口不一样,知道端口就可以和服务器上指定的应用交互数据。所以只需要知道ip和端口就行。
    或者举个更通俗的例子,假如我要和你沟通,那我就需要知道你的csdn账号名称,才能找到你的主页,然后在你的主页上要找到和你聊天的那个图标点进去才能和你聊天,这里的csdn账号相当于就是ip的功能,那个聊天入口的图标相当于就是端口。所以知道ip和端口就能找到服务器上的那个应用并进行通信,至于如何找,找的过程由网络上的交换机,路由器和dns域名解析器去做就行。
    望采纳!!!

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 2月8日
  • 创建了问题 1月26日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题