winsock之 TCP/IP的简单编程

本文记录了在Winsock编程中遇到的问题,包括理解++优先级避免错误,启用SO_REUSEADDR选项允许快速重用TIME_WAIT状态的TCP端口,以及设置服务器的Keepalive功能来检测客户端连接状态。这些问题对于确保TCP服务器的稳定性和可靠性至关重要。
摘要由CSDN通过智能技术生成

问题记录:

1.写这个代码的时候犯了一个最低级的问题搞错了优先级。++的优先级要大于==的优先级要大于=的优先级,最好用括号来避免这种问题。
2.在所有TCP服务器中,在调用bind之前设置SO_REUSEADDR套接口选项。一般来说一个端口释放后会等待两分钟之后才能再被使用SO_REUSEADDR是让端口释放后立即就可以被再次使用。SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket才可以重复绑定使用。这个套接字选项通知内核,如果端口忙,但TCP状态位于TIME_WAIT,可以重用端口。如果端口忙,而TCP状态位于其他状态,重用端口时依旧得到一个错误信息,指明"地址已经使用中"如果你的服务程序停止后想立即重启,而新套接字依旧使用同一端口,此时SO_REUSEADDR选项非常有用。必须意识到,此时任何非期望数据到达,都可能导致服务程序反应混乱,不过这只是一种可能,事实上很不可能。

3.服务器开启keepalive功能,并修改了默认的keepalive参数。目的是检测客户端是否还处于连接。

Server.cpp

//使用WinSock2库之前,要做准备工作,即调用WSAStartup初始化WinSock库。初始化后,才能使用WinSock2库
//使用完WinSock2库后,要做清理工作,即调用WSAC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值