关于Socket远程连接自动断开的原因

dannielhome 2011-01-11 11:24:15
我有一个socket的服务端程序部署在远程的linux机器上,我这边有个客户端连接上去后,如果没有请求发送隔了5分钟左右客户端就自动断开了,再发请求的话就提示连接断开或是远程主机强迫断开一个现有连接之类的,我在程序里并没有做超时设置,然后我再试着部署到另外一个远程linux主机,就不会出现这个问题,请问各位高手这是什么原因?是linux上做了什么配置吗?
...全文
499 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gengwx_2008 2012-04-26
  • 打赏
  • 举报
回复
LZ这个问题后来解决了么?
dannielhome 2011-01-12
  • 打赏
  • 举报
回复
没人知道吗。。。。。
dannielhome 2011-01-11
  • 打赏
  • 举报
回复
能具体点说吗?是设置TCP连接超时还是哪个?
[Quote=引用 1 楼 chenkezhi 的回复:]

linux有自动超时的设置
[/Quote]
chenkezhi 2011-01-11
  • 打赏
  • 举报
回复
linux有自动超时的设置
过去做网络方面的东东的时候,为了试验一些SOCKET API,编写了一个演示的DEMO,可能有朋友用得到,仅在此抛砖引玉。 这个测试工程中对Socket封装的类的文件: Soc.h Soc.cpp 网络传输封装类 SocMesWnd 异步网络传输时,接收网络消息的窗体 该DEMO演示了以下技术: 1、CTCPServe、CTCPClient Tcp异步传输,含TCP客户端与TCP服务端 2、CUDPSocket Udp异步传输 & Udp组播 3、CUDPSock5 Udp Sock5传输 4、CFtp Ftp传输 设计说明: 每个传输类都有以下两个方法 void SetSocketNotify( HWND hWndMsg, UINT unMsg ){m_hWndMsg = hWndMsg; m_nMsg = unMsg;}; void SetSocketNotify(SOCKET_NOTIFY pFuncMes){m_pFuncMes = pFuncMes;}; 这两个函数用来设置发生socket事件后的外部响应方式,一种是通过窗口消息进行响应,一种是通过回调函数进行响应。这两种方式都是阻塞的。 当发生网络事件后,两种方式都会收到 WPARAM wParam, LPARAM lParam 这两个参数,其中wParam是NET_MSG枚举,表示网络事件,lParam是附加数据,由SetExtData函数预先设置好。 void SetBufferLen( int nLen ); 该函数是设置当socket收到数据后,接收数据的缓冲区的大小的。当收到数据事件发生时,首先会将数据接收在缓冲区中,然后向发部发送消息或者调用回调函数,外部模块可以在响应函数中调用类的 void GetData( const BYTE ** ppucBuf, int &nLen ) 来获取接收到的数据。 对于 CTCPServe这个类,有些使用上的注意点:会在收到远程连接请求后自动连接客户端,当远程连接断开时,也会自动删除连接该远程socket的子socket。CTCPServe由于每次接受连接请求后,建立了新的子socket去连接远程客户,所以它有些方法需要输入子通道的标识来完成某些功能。该标识会在接受连接请求后通过响应消息或者函数发送给外部。 比如说: int GetRemoteIP( int nID, CString& strPeerAddress, int &nPeerPort ); 这个函数用来获取远程连接的客户端的IP和端口,参数中就需要指定是哪个远程客户。 UDP传输类在接收数据的时候会将远程发送数据的主机IP和地址传送给外部。 CUDPSock5在实际使用中发现与sock5服务器的连接不是很稳定,大概是我没能很好地解析sock5协议的关系。 这个DEMO在后期添加了CFtp这个类,处理FTP下载。之所以未使用WinInet,因为它有一个MS确认的BUG:超时设置无效。这个FTP类演示了FTP协议的解析过程,完成常用的FTP功能(除FTP上传外,容我有空再做,^_^)。它也是异步的。这个类支持PORT和PASSIVE两种模式的FTP,

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧