写代理服务器程序,发生死锁怎么办?

powerfulzyh 2004-01-31 01:42:56
我做了一个SOCKS5代理服务器程序,用的是SELECT()非阻塞式I/O操作。
用一个客户端的http访问做测试,建立两个socket1,一个连接客户端,另一个socket2连接服务器端。
当socket1又数据可读时,就读,这时对应的socket2应该为可发送数据,把从socket1读来的数据发送给socket2。一直到socket2变为可读,而这时socket1变为可写(发送数据),就从socket2读,写到socket1,应该是这样反复交替传送数据的。
为什么程序运行一会儿,传送一些数据之后,就锁死,socket1变为可写,而不能从socket2中读数据(这时socket2为不可读)。
请问高手,这是怎么回事?
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerfulzyh 2004-04-15
  • 打赏
  • 举报
回复
select的可写并不是这个意思吧?
应该是可以向socket发送数据才让select可写!
老兄再说明白点儿!
newlife2002_313 2004-03-31
  • 打赏
  • 举报
回复
Select的 可写 ,说明你上一次的send没有成功,告诉你可以再发送了.和另一个套接字的状态没有关系的.
powerfulzyh 2004-02-03
  • 打赏
  • 举报
回复
难道没人能解决吗?
powerfulzyh 2004-01-31
  • 打赏
  • 举报
回复
好的,我整理一个发给你!
elssann 2004-01-31
  • 打赏
  • 举报
回复
如果可以,把代码发给我看看

elssann@yahoo.com.cn

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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