在客户端:
clientread事件中:
while socket.receivelength>0 do
begin
re:=allocmem(socket.receivelength);//var re:pchar;
relong:=socket.receivelength;//var relong:integer;
totallen:=totallen+relong//var totallen:integer;--为在线人数
end;
在服务器端:
在serverclientconnect事件中:
count:=server.socket.activeconnections;//var count:integer; server-Tserversocket
只给出部分程序,给予参考
不需要用IP来识别,Tserversocket和Tclientsocket已经具备这个功能了,好好试试就知道了~~~~~
clientread事件中:
while socket.receivelength>0 do
begin
re:=allocmem(socket.receivelength);//var re:pchar;
relong:=socket.receivelength;//var relong:integer;
totallen:=totallen+relong//var totallen:integer;--为在线人数
end;
在服务器端:
在serverclientconnect事件中:
count:=server.socket.activeconnections;//var count:integer; server-Tserversocket
只给出部分程序,给予参考
不需要用IP来识别,Tserversocket和Tclientsocket已经具备这个功能了,好好试试就知道了~~~~~
解决方案 »
- 请各位老前辈指点迷津(立即揭贴)
- 怎样去掉字符串中的句号???谢谢了
- 如何通过点击界面上Button来让DateTimePicker的下拉框弹出?
- 这样的函数怎末写?
- 如何下载文件??80高分求!!
- 加壳exe的方法--delphi实现
- DELPHI.NET BETA版出来了??
- Excel导出的问题:数据能倒出来,但Excel却是半死机状态。。。
- sendmessage(dbcombobox1.Handle,wm_char,word(key),0)是什么意思
- 为什么我用异或(XOR)而出错误???
- 哪里有InfoPower 3000 控件的下载?
- 各位帮看一下我有.exe中加入.wav有没有错?
首先说一下,如果你是在同一个局域网内那可以用IP来判断,因为IP地址不可能相同,不然局域网中会出现问题.
要知道掉线人数的名字,在onclientconnect事件中:
var
count:integer;
idindex:integer;
begin
memo1.lines.add(''使用者掉线:'');
memo1.lines.add(''socketid:''+inttostr(socket.sockethandle));//获得掉线者的窗口句柄
idindex:=combobox1.items.indexof(inttostr(socket.sockethandle));//根据窗口句柄选出掉线者
combobox1.items.delete(idindex);//从列表中消除此掉线者
count:=server.socket.activeconnections-1;//重新获得在线人数
end;