我用 TClientSocket 和 TServerSocket 写了一个小程序,
虽然简单,但总觉得不是很舒服,我想自己用 API 来写,
谁能给个简单的例子?
虽然简单,但总觉得不是很舒服,我想自己用 API 来写,
谁能给个简单的例子?
解决方案 »
- 使用二进制流技术快速导出Excel文件每个单元只能支持255个字
- delphi程序界面如何设计
- 这样怎样的处理,关于窗体最小化的问题!
- 同志们这个问题一直没有解决呀!!!!跪请---赐教!!!救命哪!!!!!救命哪!!!!!救命哪!!!!!救命哪!!!!!救命哪!!!!!
- 100分,请高手给一个思路~~~~顶者有分
- 24位的bmp图像如何转换为16位的?100分,解决问题者再送100分.高手来帮忙,低手来试试.结贴率100%的哦
- windows XP 和 windows2003下 程序有问题
- win2000+sql的两台机子之间实时备份问题???
- 动态生成表的名字一定要用英文吗?
- Stream.readBuffer(buffer,len),buffer能不能是记录类型?如果不行该怎么办??
- 如何让TPanel透明
- 关于ToolBar的Enabled属性……奇怪的现象
Function TryServerPort(IP:String;Port:integer):Boolean;
var
Sock : TSocket;
buffer : array[0..8] of char;
ErrorCode : integer;
Server : TSockaddr;
begin
Result := False;
Server.sin_family:=AF_INET;
Server.sin_port:=htons(Port);
Server.sin_addr.S_addr:=inet_addr(pchar(IP));
Sock:=Socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
ErrorCode:=connect(Sock,Server,sizeof(Server));
if ErrorCode<>invalid_socket then begin
Buffer := 'QUIT'#13#10;
Send(Sock,Buffer,Length('QUIT'+#13#10),0);
Result := True;
end;
CloseSocket(Sock);
end;Procedure TryPort(Server:String);
var
WSA:TWSAData;
i : integer;
begin
WSAStartup(MakeWord(1,1),WSA);
if MinPort + MaxPort <>0 then
begin
for i:=MinPort to MaxPort do begin
if TryServerPort(Server,i) then
OutMemo.Lines.Add(Server + ':'+inttostr(PortArray[i]));
end;
end
else begin
for i:=0 to Length(PortArray)-1 do begin
if TryServerPort(Server,PortArray[i]) then
OutMemo.Lines.Add(Server + ':'+inttostr(PortArray[i]));
end;
end;
WSACleanup();
end;
好象不行啊,
MinPort,MaxPort,PortArray 分别是在哪里定义的?您能不能给一个可以编译通过的可以发送、接收的例子?-------------------------------------
谢谢你的关注,
SOCKET s,
HWND hWnd,
unsigned int wMsg,
long lEvent
);
去看msdn