关于tcp的粗浅问题 (100分)

  • 主题发起人 主题发起人 firstshine
  • 开始时间 开始时间
F

firstshine

Unregistered / Unconfirmed
GUEST, unregistred user!
我想建立一个windows环境下的tcpip的server,访问这个server的客户机是运行unix的
请问我的server的类型是threadblocking 还是noblocking好?

我现在在windows下做一个client来访问threadblocking类型的server,用
clientsocket.Socket.SendText可以写数据到server,但是在clientsocket的onread中
没法读取server发过来的信息。而且如果连接一旦建立,退出client程序的话,会出错。
请问,如何写访问threadblocking类型server的client?最好有个例子。谢谢

delphi的帮助:
When ClientType is ctBlocking, use a TWinSocketStream object for reading and
writing. TWinSocketStream prevents the application from hanging indefinitely
if a problem occurs while reading or writing. It also can wait for the socket
connection to indicate its readiness for reading.
有些似懂非懂,如何做?
是否当serversocket是threadblocking的,那么访问她的clientsocket必须是ctblocking
类型的?
 
好象没这个规定。但是使用threadblocking的话ONREAD和ONWRITE事件不起作用。
一般我个人写法如果是堵塞,就放到线程里,如果是非堵塞,直接用。西西。
 
客户端如何放到线程中,能否给个示例性的例子?
 
阻塞方式比非阻塞方式要复杂很多.
可能引起阻塞的客户端调用有connect,read,write,delphi的解决方案是用TWinSocketStream
+线程来解决,在TWinsocketStream的帮助中有例子.当然你可以在connect后用while receivelength>0 do receivebuf 来
测试一下.
block方式没有使用多路选择事件,不会触发onread事件.
 
那么,回到我的主题
我想建立一个windows环境下的tcpip的server,访问这个server的客户机是运行unix的
请问我的server的类型是threadblocking 还是noblocking好?我的业务需要支持30至50个
并发连接,如果用nonblocking,是否可以满足要求,好像nonblocking的方式较为简单,
但是,在同一个时刻好像只能处理一个客户端的连接,必须这个连接处理完了,下一个
连接才能得到处理,是这样的吗?
 
另外,客户端用TWinsocketStream,那么如何建立连接?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
344
import
I
后退
顶部