如何设置socket的Connect超时

如何设置socket的Connect超时,第1张

设置socket的Connect超时的方法

socket.setSoTimeout(int timeout)

恩。应该能实现你的要求

首先socket不是一个阻塞方法,它不会自动去连serverSocket,而是你connect一次它就去连一次,socket本身不存在什么连接server端超时,所以客户端的连接超时是由你的程序去控制的,比如用线程。

其次,恶意连接这个问题,其实我已经给你解决了,在server端拿到socket后,不就能用socket.setSoTimeout()来设置连接时间了么

int nTime//你想设置的超时时间

int err=setsockopt(m_socket,SOL_SOCKET,SO_SNDTIMEO,(const char *)&nTime,sizeof(nTime))

m_socket是你所使用的socket

1、设置socket为非阻塞模式

2、connect()连接

3、如果出错,用select()系统调用对其进行超时检测,看在给定的时间内socket是否变得可写

[cpp] view plain copy print?

int fd = socket(PF_INET,SOCK_STREAM,0)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11540869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存