当前位置: 首页 > article >正文

【计算机网络 - 基础问题】每日 3 题(五十二)

✍个人博客:https://blog.csdn.net/Newin2020?type=blog
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

154. Socket 能不能模拟 HTTP?

可以。因为 Socket 是传输层与应用层通信的中间软件抽象层,可以通过 Socket 按照 HTTP 请求报文的格式模拟 HTTP 请求并发送出去,来实现伪 HTTP 协议的目的。

155. 网络编程中,如何去掉 TIME_WAIT 时间

函数说明:

#include <sys/types.h> 
#include <sys/socket.h>

/*
 * sockfd:     标识一个套接口的描述字
 * level:      选项定义的层次;支持SOL_SOCKET, IPPROTO_TCP, IPPROTO_IP, IPPROTO_IPV6
 * optname:    设置的选项
 * optval:     指针,指向存放选项待设置的新值的缓冲区
 * optlen:     optval缓冲区长度
 */
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);

在这里插入图片描述

使用方法:

#include <sys/types.h> 
#include <sys/socket.h>

/* 
 * 去掉 Time_Wait状态,否者在1分钟内绑定不了地址
 * tmp 必须是 int,不然会失败
 *
 * 成功返回0,失败返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。
 */  
int tmp = 1; 

if(setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof(tmp))) dbge();

156. connect 方法会阻塞,请问有什么方法可以避免其长时间阻塞?

最通常的方法最有效的是加定时器;也可以采用非阻塞模式。

或者考虑采用异步传输机制,同步传输与异步传输的主要区别在于同步传输中,如果调用 recvfrom 后会一致阻塞运行,从而导致调用线程暂停运行;异步传输机制则不然,会立即返回。


http://www.kler.cn/news/362133.html

相关文章:

  • R语言建模线性回归
  • 20240818 字节跳动 笔试
  • 若依框架定制
  • 【云原生】Kubernetes部署Jenkins静动Slave
  • 深度学习 基本函数01
  • 深度学习的关键概念和术语
  • node.js使用Sequelize ORM操作数据库
  • 同一个交换机不同vlan的设备为什么不能通信
  • Linux系统层面问题总结
  • 我与Linux的爱恋:自主Shell
  • 【Linux系列】查询nginx相关的进程
  • 【Leecode】Leecode刷题之路第29天之两数相除
  • Vue快速创建工程+Element Plus
  • 【Flutter】基础组件:文本及样式
  • 【Docker】Elasticsearch Docker 容器数据迁移
  • Linux之时间服务器
  • MacOS Sublime Text 解决中乱码
  • VBA技术资料MF215:添加一个指定名称的模块
  • 8. 数据结构—交换排序
  • 【代码随想录Day50】图论Part02
  • java语言知识点(1)
  • Selenium:设置元素等待、上传文件、下载文件
  • 数字化转型中的IT价值:如何让管理层相信“钱花得值”?
  • 如何判断一个数是几位数与这个数是否为回文数并打印出其逆序数
  • 为何大家都对谷歌老号白包趋之若鹜
  • 从零开始学PHP之helloworld