关于Socket等等,TServerClientWinSocket,TServerWinSocket ...(185分)

  • 主题发起人 主题发起人 zzz
  • 开始时间 开始时间
Z

zzz

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个基于Socket的服务器程序,遇到下列的问题:

1、服务器用TServerSocket,有固定的IP和一个周知的端口号(如1024),支
持客户机的多个连接,客户机用TClientSocket,指定服务器IP和服务器周知
端口号同服务器相连。但是在服务器端我如何将客户端登录的连接用一个新的连
接(进程?)来接管,即用建立新的连接,用新的端口号来管理客户端的连接,
然后服务器回到1024端口继续监听?
2、TServerSocket中的Connections是如何实现的,
3、TServerClientWinSocket,TServerWinSocket是什么含义,派什么用场?

谢谢!!!
 
1.对serversocket来说,不需要建立新的端口来继续监听,当Serversocket接收
到客户连接时,会自动建立新的连接,用新的端口号来管理客户端的连接,
然后服务器回到1024端口继续监听,这一切Serversocket都自动作了,我们所需
的就是在serversocket中填写代码.可以查看serversocket控件源代码.(个人理解,仅供查考)
2.把Serversocket.Active:=True,就可以进行监听,接受客户请求.
3.没用过,正在找.
 
1、
TserverSocket本身就可以针对每一个Client的连接建立线程(ServerType =
stThreadBlocking),没有也没必要用新的端口。如果一定要开新的端口,那就
只好订一个协议,Client连上来之后告诉它要重新连到那个端口上。(可以参考
Socks5 的RFC:rfc1928)
2.是TServerWinSocket的Connections,就是把每一个Socket连接加入这个TList中,
看看源程序吧。
3.是具体实现Socket功能的类。TServerClientWinSocket负责Server与Client的
连接,TServerWinSocket是侦听的Socket,各自对应一个Socket handle,建议先
学习Socket的基础知识。
 
呵呵..关于用到DELPHI的TClientSocket和TServerSocket来编程时,如何来进行
客户端和服务段的通信???我现在对于在客户端送一个信息给服务端,服务端接收到信息
后,经过一定的操作,生成一个结果,我要把这个结果又回送到客户端进行运算,
客户端得到这个结果并运算在产生一个信息,我必须把这个新的结果送到服务器端加与
验证,如通过验证就想客户端送一个"OK",的信息!!
由于小弟对于Socket编程的机制不大理解,借此宝地特此向个位仁兄请教!!!
特急!!!
特急!!!
特急!!!
 
呵呵..关于用到DELPHI的TClientSocket和TServerSocket来编程时,如何来进行
客户端和服务段的通信???我现在对于在客户端送一个信息给服务端,服务端接收到信息
后,经过一定的操作,生成一个结果,我要把这个结果又回送到客户端进行运算,
客户端得到这个结果并运算在产生一个信息,我必须把这个新的结果送到服务器端加与
验证,如通过验证就想客户端送一个"OK",的信息!!
由于小弟对于Socket编程的机制不大理解,借此宝地特此向个位仁兄请教!!!
特急!!!
特急!!!
特急!!!
 
可以看一下demos/internet/chat中的例程,虽然有点问题,不过还
可以借此了解一下Tclientsocket和Tserversocket的用法,再看一下
帮助文件,应该有点收获。
 
delphi的tserversocket的active设为true就自动listen,如果有tclientsocket连接的话就加入connections数组里,此后如果想用多线程可以把sockethandle传给线程,在线程中用sockethandle进行send或是receive
 
我没什麽好说的了。
 
请见告: TServerClientThread的ClientExecute中如何处理客户端的
disconnect,如客户端用Java Applet,用户用完后未disconnect就关 闭browser,这样会导致服务端的异常,怎样处理?
 
远程通讯时,至少需要TServerSocket,TClientSocket两套即:
S1,S2:TServerSocket;
C1,C2:TClientSocket;
否则,TClientSocket不接受事件触发.
 
>>远程通讯时,至少需要TServerSocket,TClientSocket两套
没道理吧?
 
yaoydong:
非常有趣,那可不可以修改把客户加入到connection数组的过程呢?
samecaoyh:
可以说明白点吗?
 
多人接受答案了。
 
后退
顶部