导航:首页 > 配服务器 > 如何判断socket连接服务器失败

如何判断socket连接服务器失败

发布时间:2022-04-23 20:16:10

1. 怎样判断socket连接成功

socket建立连接失败会抛出异常,你只需要在catch里捕捉异常就可以了catch(exceptione){System.out.println("服务器/客户端未连接");return;}

2. 常见Socket连接错误及原因有哪些

socketerrorcode:11001,socketerrorinfo:不知道这样的主机。 表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的“个人防火墙”。 2、出现网络联机错误Socketerror#11004 socketerrorcode:11004,socketerrorinfo:请求的名称有效,但是找不到请求的类型的数据。 应该是网络联机状态问题,请用户检查网络联机是否正常。 3、出现网络联机错误Socketerror#10060 Connection Timed Out socketerrorcode:10060,socketerrorinfo:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 表示您与服务器发生联机逾时错误,请检查您的Proxy相关设定,以及Proxy Server是否已将SSL 443 port打开。 4、出现网络联机错误Socketerror#10061 socketerrorcode:10061,socketerrorinfo:由于目标计算机积极拒绝,无法连接。

3. windows socket 客户端怎么判断服务端已关闭

服务器端发起关闭,要让服务器发送RST而不是FIN,
这时客户端收到RST后send会直接返回失败(这时就检测出服务器已关闭)而不是阻塞。
如果直接调用closesocket会发送FIN,
需要设置linger使closesocket直接发送RST
代码:
SOCKET
soc_client
=
::accept(soc_listen,
(struct
sockaddr
*)&client_addr,
&len);

struct
linger
so_linger;
so_linger.l_onoff
=
1;
so_linger.l_linger
=
0;
setsockopt(soc_client,
SOL_SOCKET,
SO_LINGER,
(char
*)&so_linger,
sizeof(so_linger));

4. c#socket编程怎么判读客户端与服务器断开连接

使用Socket类中的Poll方法,就可以。
Socket client //假如已经创建好了,连接到服务器端得Socket的客户端对象。
我们只要client.Poll(10,SelectMode.SelectRead)判断就行了。只要返回True是。就可以认为客户端已经断开了。

Poll 方法将会检查 Socket 的状态。指定 selectMode 参数的 SelectMode..::.SelectRead,可确定 Socket 是否为可读。指定 SelectMode..::.SelectWrite,可确定 Socket 是否为可写。使用 SelectMode..::.SelectError 检测错误条件。Poll 将在指定的时段(以 microseconds 为单位)内阻止执行。如果希望无限期的等待响应,则将 microSeconds 设置为一个负整数。如果要检查多个套接字的状态,则不妨使用 Select 方法。

5. C++中怎么判断SOCKET的连接状态

你进行recv或者send操作时会报错的,在远端关闭时,你这边是可以通过select获取到事件的/或者加心跳机制来保证连通性

6. vb.net socket怎么判断客户端和服务器的连接断开了 thank you!

tcp
还是
udp?
tcp
的话
try
-
catch
就行了,因为
tcp
要求的是稳定的连接,连接一断开直接就
throw
exception
了。
udp
的话,因为它本身是无连接的协议,所以其实不存在断开不断开的,准确的说应该是超时。可以客户端每隔一段时间向服务端发送个心跳包(随便什么数据都行,只是证明客户端还在线),服务端每隔一段时间检测在线的客户端列表,谁已经很久没发来心跳包了就证明它掉线了。

7. 常见Socket连接错误及原因有哪些

表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的“个人防火墙”。

8. vb.net中关于 socket的连接服务器失败问题! 怎么处理连接失败

用 try-catch 结构,捕获 SocketException,示例:

Try
//可能产生错误的代码
CatchexAsSocketException
MessageBox.Show("连接失败,原因是:"&ex.Message)
EndTry

P.S. 好久不写 VB.NET 的了,这个是根据 C# 和记忆中的样子写的,题主看明白思路就好。

9. 如何判断socket客户端和服务器端

法一:
当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。

法二:
struct tcp_info info;
int len=sizeof(info);
getsockopt(sock, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len);
if((info.tcpi_state==TCP_ESTABLISHED)) 则说明未断开 else 断开

法三:
若使用了select等系统函数,若远端断开,则select返回1,recv返回0则断开。其他注意事项同法一。

法四:
int keepAlive = 1; // 开启keepalive属性
int keepIdle = 60; // 如该连接在60秒内没有任何数据往来,则进行探测
int keepInterval = 5; // 探测时发包的时间间隔为5 秒
int keepCount = 3; // 探测尝试的次数.如果第1次探测包就收到响应了,则后2次的不再发.
setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));
setsockopt(rs, SOL_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle));
setsockopt(rs, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));
setsockopt(rs, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));
设置后,若断开,则在使用该socket读写时立即失败,并返回ETIMEDOUT错误

10. 如何判断socket客户端连接断开

你可以根据服务器收到的数据的长度来判断,如果服务器收到的数据长度是0,那么意味着你的客户端程序已经断开了连接。从tcp/ip协议栈的角度来说,就是客户端程序关闭了自己写的这一半连接,向服务器发出了一个fin。这涉及到tcp的状态迁移,关于这方面的知识,建议你看一下richard
stevens先生的《tcp/ip
详解》卷一和《unix网络编程》卷一,上面有详细的解释。
关于你的第二个问题,建议你仔细看一下自己的服务器程序代码。服务器程序首先要建立一个监听socket,当有客户端连接上来时,服务器会在一个新socket上接受客户端连接。所以并不存在“乱”的问题。关于这个问题同样推荐你看上面的两本关于网络编程的经典着作。

阅读全文

与如何判断socket连接服务器失败相关的资料

热点内容
建筑考二建刷视频用什么app 浏览:233
取消纸质文件夹密码 浏览:769
程序员级别提升 浏览:432
编译运行后停止工作 浏览:779
白虎通pdf 浏览:673
linux开启关闭端口 浏览:228
单片机加一个芯片 浏览:723
vs编译方式 浏览:211
安卓的掌盟盒子可以查什么 浏览:864
上下学app有什么好处 浏览:363
程序员做信贷项目的好跳槽吗 浏览:252
粘土服务器的礼盒为什么开不了 浏览:506
乐高机器人pdf 浏览:863
退出scala命令 浏览:366
不管什么情况下军人必须服从命令 浏览:267
云计算和服务器模式有什么区别 浏览:524
s型增长速率算法 浏览:978
c语言迷宫算法入门 浏览:241
android列表动画 浏览:362
外企算法面试 浏览:321