E
e_jie
Unregistered / Unconfirmed
GUEST, unregistred user!
我初学dephi 第五天,希望大家多多发言帮忙!
我本来想给500分的,结果发现只能给300分。
在VB中,一个socket Server 程序大致是这样实现的:
1。在指定Port启动监听服务(如:sckServer.listen)
2. 在client端请求时,会触发ConnectionRequest事件。
Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)
'这时,可以这样
sckServer.Accept requestID
'requestID是请求的ID
'也可以这样,(一般用这种方法)
'创建一个socket实例如sck,然后 sck.accept requestID
End Sub
这样sckServer一直listen,而sck与各自的client Socket单独通信。
而在dephi中,
ServerSocket1.Port:=strtoint(txtport.Text );
ServerSocket1.active:=true;
然后在ClientRead Event :
socket.SendText (strMessage);
我用5个socketClient 程序并发同时发1000个包(总共5000个),全部返回(每个
client收到他发的1000个)
我在任务管理器看到线程在自动创建和销毁。
我本来以为需要创建线程,然后在线程中创建socket,并accept,并通信。但是看来
ServerSocket已把它全部封装了。
请问:
1。可以拒绝client的请求吗?(在VB中,一个Client请求如果不被accept,则连接不会建立
,而dephi的ServerSocket好像是自动accept的,不需要任何代码(真是把我当傻瓜)
2。作这样的SocketServer需要多线程吗(指在线程中建立每一个独立的连接)
3。希望知道关于Dephi socket的更多的东西。
谢谢!
我本来想给500分的,结果发现只能给300分。
在VB中,一个socket Server 程序大致是这样实现的:
1。在指定Port启动监听服务(如:sckServer.listen)
2. 在client端请求时,会触发ConnectionRequest事件。
Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)
'这时,可以这样
sckServer.Accept requestID
'requestID是请求的ID
'也可以这样,(一般用这种方法)
'创建一个socket实例如sck,然后 sck.accept requestID
End Sub
这样sckServer一直listen,而sck与各自的client Socket单独通信。
而在dephi中,
ServerSocket1.Port:=strtoint(txtport.Text );
ServerSocket1.active:=true;
然后在ClientRead Event :
socket.SendText (strMessage);
我用5个socketClient 程序并发同时发1000个包(总共5000个),全部返回(每个
client收到他发的1000个)
我在任务管理器看到线程在自动创建和销毁。
我本来以为需要创建线程,然后在线程中创建socket,并accept,并通信。但是看来
ServerSocket已把它全部封装了。
请问:
1。可以拒绝client的请求吗?(在VB中,一个Client请求如果不被accept,则连接不会建立
,而dephi的ServerSocket好像是自动accept的,不需要任何代码(真是把我当傻瓜)
2。作这样的SocketServer需要多线程吗(指在线程中建立每一个独立的连接)
3。希望知道关于Dephi socket的更多的东西。
谢谢!