如果不在要访问的机器上安装服务器程序,这是作不到的,否则windows哪里还有安全性可言?
解决方案 »
- delphi 我想识别字符+ 怎么识别
- 类类型问题
- 如何读曲mpg格式的歌曲的头文件信息
- 大侠们,这里是一个文件为Object,应用程序为Observer的问题。
- 如何在DELPHI5下编写基于netbios会话的收发数据包的程序?30分
- ★★★书上的一道关于操作有类型文件的例子(文件指针什么的),看不懂,大虾来帮忙啊!
- 难道没有人用过TDBAdvStringGrid.第三次问这个问题了.加上前面的一共150分一起给了.
- 求几个学delphi的论坛。
- 热切关注,只要肯触电,终究会撞出火花的!如果是真正的delphi程序员快点拿出行动吧?
- 请问那位知道讲解用delphi进行完全的api编程的书籍
- 分发ActiveXForm问题
- mscomm在delphi里面怎么用呀???
1、各客户端要负责一客户端软件,它负责将机器里的内容传给应用服务器。
2、应用服务器负责接收各客户端发来的文件信息。
3、控制端,它向应用服务器取客户端信息,并作出处理。
这个程序我已做了一半,但目前遇到一个问题,那就是多个客户端同时向服务器发送信息时,服务器怎样识别并分别处理。我用的是TServerSocket控件,我也知道此控件能分别管理多个连接,但具体是怎样实现的,我正在摸索。
to:yangyun
多个连接的问题很有easy,
type
session_record=record
Used: boolean; {会话记录是否可用}
SS_Handle: integer; {代理服务器套接字句柄}
CSocket: TClientSocket; {用于远程连接的套接字}
Lookingup: boolean; {是否正在查找服务器}
LookupTime: integer; {查找服务器时间}
Request: boolean; {是否有请求}
request_str: string; {请求数据块}
client_connected: boolean; {客户机联机标志}
remote_connected: boolean; {远程服务器连接标志}
end;
session: array of session_record; {会话数组}
sessions: integer; {会话数}
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
i,j: integer;
begin
j:=-1;
for i:=1 to sessions do{查找是否有空白项}
if not session[i-1].Used and not session[i-1].CSocket.active then
begin
j:=i-1;{有,分配它}
session[j].Used:=true;{置为在用}
break;
end
else
if not session[i-1].Used and session[i-1].CSocket.active then
session[i-1].CSocket.active:=false;
if j=-1 then
begin{无,新增一个}
j:=sessions;
inc(sessions);
setlength(session,sessions);
session[j].Used:=true;{置为在用}
session[j].CSocket:=TClientSocket.Create(nil);
session[j].CSocket.OnConnect:=ClientSocket1Connect;
session[j].CSocket.OnDisconnect:=ClientSocket1Disconnect;
session[j].CSocket.OnError:=ClientSocket1Error;
session[j].CSocket.OnRead:=ClientSocket1Read;
session[j].CSocket.OnWrite:=ClientSocket1Write;
session[j].Lookingup:=false;
end;
session[j].SS_Handle:=socket.socketHandle; {保存句柄,实现绑定}
session[j].Request:=false;{无请求}
session[j].client_connected:=true;{客户机已连接}
session[j].remote_connected:=false;{远程未连接}
edit1.text:=inttostr(sessions);
end;这是我写的一个代理程序里面的一段代码。