设置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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)