TTcpclient 的nonblock模式是不是有bug阿? ( 积分: 100 )

  • 主题发起人 主题发起人 netnet
  • 开始时间 开始时间
N

netnet

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个delphi5.0程序,是socket的客户端,现在要移植到Linux下面,我想用TTcpClient替换原来的TClientWinsocket。

换了后,出现了问题,主要是因为我的BlockMode是nonblock的,在Linux下Open()的时候报错;115.
(这个错误我查了一下,对应win sock下的10035 [EWOULDBLOCK],换到windows下就报这个错)
BlockMode设置成block的,就可以连接到server了!

不知道哪位有类似的成功经验阿?

如果不行,我该把它如何移植到Linux下面呢?

谢谢!
 
我有个delphi5.0程序,是socket的客户端,现在要移植到Linux下面,我想用TTcpClient替换原来的TClientWinsocket。

换了后,出现了问题,主要是因为我的BlockMode是nonblock的,在Linux下Open()的时候报错;115.
(这个错误我查了一下,对应win sock下的10035 [EWOULDBLOCK],换到windows下就报这个错)
BlockMode设置成block的,就可以连接到server了!

不知道哪位有类似的成功经验阿?

如果不行,我该把它如何移植到Linux下面呢?

谢谢!
 
10035 Socket is non-blocking and the specified operation will block.

意思是说Socket是non-blocking,但是指定的操作确是block的,所以可能是代码里面的问题

另外不知道TcpClient是不是一定要对应TcpServer,个人看法,供参考
 
这个不是bug,它本身不阻塞的,你的代码耗时太长(“插座”得不到cpu时间)、调试中断等,引起的
 

Similar threads

D
回复
0
查看
878
DelphiTeacher的专栏
D
D
回复
0
查看
846
DelphiTeacher的专栏
D
D
回复
0
查看
797
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部