📄 qsocket2.pas
字号:
unit qsocket2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,winsock;
function SetNoBlock(s:Tsocket):integer;
function setbet:boolean;
function setup(ip:string;port:integer;var sock:Tsocket):boolean;
procedure StopNet(Fsocket:TSocket);
implementation
function SetNoBlock(s:Tsocket):integer;
var
mode,i:integer;
begin
mode:=1;
i:=ioctlsocket(s,FIONBIO,mode);
if i=-1 then
result:=0
else
result:=1;
end;
function setbet:boolean;
var
err:integer;
ws :TWSAdata;
begin
err:=WSAStartup(MAKEWORD(2,2),ws);
if err<>socket_error then
result:=true
else
result:=false;
end;
function setup(ip:string;port:integer;var sock:Tsocket):boolean;
var
sa:TSockAddrIn;
Fsock:Tsocket;
err:integer;
begin
Fsock:= socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if Fsock=invalid_socket then begin
showmessage('出错');
end;
sa.sin_addr.s_addr:=inet_addr(PChar(ip));
sa.sin_family := AF_INET;
sa.sin_port :=htons(port);
err:=connect(Fsock,sa, SizeOf(sa));
if err=0 then
begin
sock:=Fsock;
Result:=True;
end
else
Result:=False;
end;
procedure StopNet(Fsocket:TSocket);
var err:integer;
begin
err:=closesocket(FSocket);
err:=WSACleanup;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -