高分求教!socket线程问题?(200分)

  • 主题发起人 主题发起人 pgy
  • 开始时间 开始时间
P

pgy

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在想用TSERVERSOCKET控件编写一个服务器端,有一个客户端与我连接。
但客户端在一段时间内发多个请求包,针对每个请求包,我要发一个应答包。
请问各位大虾我的服务器段要采用多线程吗?如果采用该怎么作,不采用又该怎么?
请详细些,最好附源码,如果有列程请发给我,我还会另外加分的。
我的信箱:mikor2001@263.net
先在这里谢谢大家了。
 
采用非阻塞的方式 不用自己管理线成 但我不明白
“客户端在一段时间内发多个请求包,针对每个请求包,我要发一个应答包”
解释一下?
 
多线程使用在多个客户端连接
至于多个请求包,也是有顺序的,服务端会自动捕做,可能是在ONGETDATE事件中
 
我现在编写的程序是一个电话查询系统。同一时间可能有多个用户大电话查询,这是客户
端可能就发来大量的包,我编写的SERVER就要针对每一个包到后台查询数据库,然后发应答包。
难到一个CLIENT就不能同时发多个数据包吗?就算不是同时,也可能在一段时间发大量的包。
请问在ONGETDATE事件怎样扑捉。
我的情况到底要怎样处理,能给个列程吗?多谢。
 
大虾们快来啊
 
每个用户用一个线程足矣
 
可以有这样的思路:
定义一个动态结构

type
TSessionRecord=record
Conecting: boolean; //会话是否在继续
ServerSocket: THandle; //服务器SOCKET
ClientSocket: TClientSocket; //用于连接远程的SOCKET
RequestOrNot: boolean; //是否有请求
RequestData: string; //请求数据
end;
var
SessionRecord:array of TSessionRecord;
然后在程序中动态添加会话记录数,每一个连接都创建一个TClientSocket作为应答
SOCKET不就可以了。
 
多人接受答案了。
 
后退
顶部