DELPHI 小结

DELPHI 小结

澳门新萄京 1

澳门新萄京 1

//十六进制(S)–>>十进制(I)  [重写:Jey]
function hextoint(s: string): Integer; 
begin           //$代表16进制
  Result:=StrToInt(‘$’+s);
end;

//十六进制–>>十进制 [重写:Jey]
function hextoint(s: string): Integer;
begin //$代表16进制
Result:=StrToInt;
end;

此短信平台,帮衬法兰西wavecom短信猫.有VB及DELPHI示例程序

此短信平台,协理法兰西共和国wavecom短信猫.有VB及DELPHI示例程序

//十进制转换为二进制字符串  [重写:Jey]
function inttoBin(i: integer): string;
begin
 while i <>0 do
 begin              //i mod 2取模,再使用format格式化
   result:=Format(‘%d’+result,[i mod 2]);
   i:=i div 2
 end
end;
//二进制(S)–>>十进制(D)    [重写:Jey]
uses Math;
function hextoint(s: string): Double;
begin
  while Length(s) <>0 do
  begin              //2^(长度-1)次方
    if s[1]=’1′ then  Result:=Result+power(2,Length(s)-1);
    s:=Copy(s,2,Length(s));
  end
end;
//十进制(I)–>>十六进制(S)
//D自带函数,Digits长度,一般设4.
function IntToHex(Value: Integer; Digits: Integer): string;

//十进制转换为二进制字符串 [重写:Jey]
function inttoBin(i: integer): string;
begin
while i <>0 do
begin //i mod 2取模,再使用format格式化
result:=Format(‘%d’+result,[i mod 2]);
i:=i div 2
end
end;
//二进制–>>十进制 [重写:Jey]
uses Math;
function hextoint(s: string): Double;
begin
while Length <>0 do
begin //2^次方
if s[1]=’1′ then Result:=Result+power(2,Length;
s:=Copy(s,2,Length;
end
end;
//十进制–>>十六进制
//D自带函数,Digits长度,一般设4.
function IntToHex(Value: Integer; Digits: Integer): string;

 

 

//数据(S)–>>二进制(S)
//任何数据都以以二进制方式储存的! (转)
function conertde(s:string):string;
var
 i:integer;
begin
 for i:=1 to length(s) do
   result:=result+inttohex(ord(s[i]),2);
end; 

//数据–>>二进制
//任何数据都以以二进制情势储存的!
function conertde:string;
var
i:integer;
begin
for i:=1 to length do
result:=result+inttohex,2);
end;

错误表明
0 成功
-1 连接短信平台破产
-2 命令执行破产
-3 无可读短信

错误表明
0 成功
-1 连接短信平台破产
-2 命令执行破产
-3 无可读短信

一、WSAStartup函数
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使
用Socket的主次在动用Socket在此之前必须调用WSAStartup函数。该函数的率先个参数指明程序请求使用的Socket版本,当中高位字节指
明副版本、低位字节指明主版本;操作系统利用第贰个参数重返请求的Socket的版本音信。当三个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。今后应用程序就能够调用所请求的Socket库中的别的Socket函数了。该函数执行成功后重临0。
例:假若3个先后要使用2.1版本的Socket,那么程序代码如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, &wsaData );

一、WSAStartup函数
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使
用Socket的次第在应用Socket在此之前必须调用WSAStartup函数。该函数的第三个参数指明程序请求使用的Socket版本,在那之中高位字节指
明副版本、低位字节指明主版本;操作系统利用第①个参数重返请求的Socket的版本新闻。当二个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。今后应用程序就能够调用所请求的Socket库中的其余Socket函数了。该函数执行成功后再次回到0。
例:借使1个顺序要选取2.1版本的Socket,那么程序代码如下
wVersionRequested = MAKEWORD;
err = WSAStartup( wVersionRequested, &wsaData );

function ConnectToServer(aServerName, aLogID, aPass: pchar): integer;
stdcall;
函数表达:
三番五次平台的后台数据库
参数表明:
aServerName 平台的后台数据库所在的服务器名称
aLogID 登陆数据库服务器所需的用户名
aPass 登陆数据库服务器所需的密码

function ConnectToServer(aServerName, aLogID, aPass: pchar): integer;
stdcall;
函数表明:
连日平台的后台数据库
参数表达:
aServerName 平台的后台数据库所在的服务器名称
aLogID 登陆数据库服务器所需的用户名
aPass 登陆数据库服务器所需的密码

二、WSACleanup函数
int WSACleanup (void);
应用程序在成功对请求的Socket库的应用后,要调用WSACleanup函数来撤消与Socket库的绑定并且释放Socket库所占有的系统能源。

二、WSACleanup函数
int WSACleanup ;
应用程序在成就对请求的Socket库的行使后,要调用WSACleanup函数来排除与Socket库的绑定并且释放Socket库所占有的系统能源。

function DisConnectToServer: integer; stdcall;
函数表明:
断开平台的后台数据库连接

function DisConnectToServer: integer; stdcall;
函数表明:
断开平台的后台数据库连接

三、socket函数
SOCKET socket(
int af,
int type,
int protocol
);

用程序调用socket函数来创建八个力所能及举办互连网通讯的套接字。第伍个参数内定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置
PF_INET;第②个参数内定要开创的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM;第七个参数钦命应
用程序所利用的通讯协议。该函数假如调用成功就回来新创造的套接字的描述符,假如退步就回去INVALID_SOCKET。套接字描述符是一个整数品种的
值。各样进程的进程空间里都有三个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的照应关系。该表中有三个字段存放新创立的套接字的描述符,
另2个字段存放套接字数据结构的地址,由此依照套接字描述符就足以找到其对应的套接字数据结构。种种进度在和谐的进度空间里都有一个套接字描述符表可是套
接字数据结构都以在操作系统的水源缓冲里。上面是叁个创办流套接字的事例:
struct protoent *ppe;
ppe=getprotobyname(“tcp”);
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);

三、socket函数
SOCKET socket(
int af,
int type,
int protocol
);

用程序调用socket函数来创制二个可见进行网络通讯的套接字。第三个参数钦点应用程序使用的通讯协议的协议族,对于TCP/IP协议族,该参数置
PF_INET;第①个参数钦点要开创的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM;第三个参数内定应
用程序所采取的通讯协议。该函数假如调用成功就回到新创制的套接字的描述符,如若失利就再次回到INVALID_SOCKET。套接字描述符是二个平头档次的
值。种种进度的历程空间里都有3个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的附和关系。该表中有四个字段存放新创制的套接字的描述符,
另三个字段存放套接字数据结构的地址,由此依据套接字描述符就能够找到其相应的套接字数据结构。每种进程在友好的历程空间里都有二个套接字描述符表然则套
接字数据结构都是在操作系统的水源缓冲里。上面是贰个成立流套接字的例证:
struct protoent *ppe;
ppe=getprotobyname;
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);

function CreateIniDb: integer; stdcall;
函数表明:
起初化平台的后台数据库脚本

function CreateIniDb: integer; stdcall;
函数表达:
初叶化平台的后台数据库脚本

四、closesocket函数
int closesocket(
SOCKET s
);
closesocket
函数用来关闭1个讲述符为s套接字。由于每种进程中都有一个套接字描述符表,表中的各类套接字描述符都对应了三个身处操作系统缓冲区中的套接字数据结构,
因而有大概有多少个套接字描述符指向同二个套接字数据结构。套接字数据结构中特意有1个字段存放该组织的被引述次数,即有几个套接字描述符指向该组织。当
调用closesocket函数时,操作系统先反省套接字数据结构中的该字段的值,假使为1,就标志唯有2个套接字描述符指向它,由此操作系统就先把s在
套接字描述符表中对应的那条表项清除,并且释放s对应的套接字数据结构;借使该字段大于1,那么操作系统仅仅清除s在套接字描述符表中的对应表项,并且把
s对应的套接字数据结构的引用次数减1。
closesocket函数若是实施成功就再次回到0,不然再次回到SOCKET_ERROR。

四、closesocket函数
int closesocket(
SOCKET s
);
closesocket
函数用来关闭四个叙述符为s套接字。由于种种进程中都有一个套接字描述符表,表中的每种套接字描述符都对应了一个位于操作系统缓冲区中的套接字数据结构,
由此有也许有多少个套接字描述符指向同八个套接字数据结构。套接字数据结构中特别有一个字段存放该组织的被引述次数,即有多少个套接字描述符指向该协会。当
调用closesocket函数时,操作系统先检查套接字数据结构中的该字段的值,倘使为1,就标明唯有三个套接字描述符指向它,由此操作系统就先把s在
套接字描述符表中对应的那条表项清除,并且释放s对应的套接字数据结构;假使该字段大于1,那么操作系统仅仅清除s在套接字描述符表中的对应表项,并且把
s对应的套接字数据结构的引用次数减1。
closesocket函数假若实施成功就再次来到0,否则重临SOCKET_ERROR。

function SendASms(aPhone, aContent, aremark: pchar): integer; stdcall;
函数说明:
写短信到平台的后台数据库
参数表达:
aPhone 接收短信的人
aContent 短信的剧情
aremark 备注

function SendASms(aPhone, aContent, aremark: pchar): integer; stdcall;
函数表达:
写短信到平台的后台数据库
参数表明:
aPhone 接收短信的人
aContent 短信的内容
aremark 备注

五、send函数
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);

论是客户依旧服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则一般用send函
数来向客户程序发送应答。该函数的首先个参数钦定发送端套接字描述符;第二个参数指美赞臣个存放应用程序要发送数据的缓冲区;第7个参数指明实际要发送的数
据的字节数;第④个参数一般置0。那里只描述同步Socket的send函数的履行流程。当调用该函数时,send先相比待发送数据的长度len和套接字
s的发送缓冲区的长度,假使len大于s的发送缓冲区的尺寸,该函数重回SOCKET_E本田UR-VROEscort;倘诺len小于可能等于s的发送缓冲区的长度,那么
send先反省协议是还是不是正在发送s的出殡和埋葬缓冲中的数据,要是是就等候协议把数据发送完,倘若协议还未曾开端发送s的殡葬缓冲中的数据恐怕s的出殡和埋葬缓冲中没
有数据,那么send就比较s的发送缓冲区的盈余空间和len,假诺len大于剩余空间大小send就径直守候协议把s的出殡和埋葬缓冲中的数据发送完,假设len小于剩余空间大小send就唯有把buf中的数据copy到剩余空间里(注意并不是send把s的殡葬缓冲中的数据传到连接的另一端的,而是协议传
的,send仅仅是把buf中的数据copy到s的发送缓冲区的剩余空间里)。假如send函数copy数据成功,就回来实际copy的字节数,假使send在copy数据时出现错误,那么send就赶回SOCKET_E揽胜极光RO中华V;假诺send在伺机协议传送数据时网络断开的话,那么send函数也再次回到SOCKET_ERAV4RO君越。要留心send函数把buf中的数据成功copy到s的发送缓冲的剩余空间里后它就重返了,不过此时这几个多少并不一定立刻被
传到接二连三的另一端。假如协议在继承的传递进程中冒出网络错误的话,那么下二个Socket函数就会重返SOCKET_E福特ExplorerRORubicon。(每贰个除send外的
Socket函数在实践的最开始总要先等待套接字的出殡缓冲中的数据被协议传送完成才能继续,假若在守候时出现网络错误,那么该Socket函数就回来
SOCKET_ERROR)
注意:在Unix系统下,假诺send在守候协议传送数据时互连网断开的话,调用send的经过会接受到四个SIGPIPE信号,过程对该信号的默许处理是经过终止。

五、send函数
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);

论是客户依旧服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则一般用send函
数来向客户程序发送应答。该函数的率先个参数钦定发送端套接字描述符;第二个参数指澳优个存放应用程序要发送数据的缓冲区;第6个参数指明实际要发送的数
据的字节数;第多少个参数一般置0。那里只描述同步Socket的send函数的实施流程。当调用该函数时,send先相比较待发送数据的长度len和套接字
s的发送缓冲区的尺寸,如若len大于s的发送缓冲区的尺寸,该函数重返SOCKET_E大切诺基RO奇骏;要是len小于或然等于s的发送缓冲区的长度,那么
send先反省协议是还是不是正在发送s的出殡和埋葬缓冲中的数据,如若是就等候协议把数据发送完,假设协议还未曾开头发送s的出殡和埋葬缓冲中的数据也许s的出殡和埋葬缓冲中没
有数据,那么send就相比s的发送缓冲区的剩余空间和len,假使len大于剩余空间大小send就径直守候协议把s的出殡和埋葬缓冲中的数据发送完,借使len小于剩余空间大小send就唯有把buf中的数据copy到剩余空间里(注意并不是send把s的出殡和埋葬缓冲中的数据传到连接的另一端的,而是协议传
的,send仅仅是把buf中的数据copy到s的发送缓冲区的剩余空间里)。假使send函数copy数据成功,就赶回实际copy的字节数,借使send在copy数据时出现错误,那么send就重临SOCKET_E帕杰罗RO翼虎;假如send在等候协议传送数据时互连网断开的话,那么send函数也重临SOCKET_E中华VROPAJERO。要注意send函数把buf中的数据成功copy到s的发送缓冲的多余空间里后它就回去了,不过此时这几个多少并不一定立刻被
传到再而三的另一端。要是协议在持续的传递进度中出现网络错误的话,那么下1个Socket函数就会回来SOCKET_E牧马人ROWrangler。(每三个除send外的
Socket函数在进行的最开首总要先等待套接字的出殡缓冲中的数据被协议传送达成才能一连,假若在伺机时出现互连网错误,那么该Socket函数就回到
SOCKET_ERROR)
注意:在Unix系统下,假设send在伺机协议传送数据时网络断开的话,调用send的长河会接受到3个SIGPIPE信号,进程对该信号的暗许处理是经过终止。

function ReadASms(var aPhone, aContent, aSendDateTime: pchar): integer;
stdcall;
函数表达:
从平台的后台数据库中读取一条未读短信
参数表明:
aPhone 发送短信的人
aContent 短信的剧情
aSendDateTime 短信发送的年华

function ReadASms(var aPhone, aContent, aSendDateTime: pchar): integer;
stdcall;
函数说明:
从阳台的后台数据库中读取一条未读短信
参数表达:
aPhone 发送短信的人
aContent 短信的始末
aSendDateTime 短信发送的时光

六、recv函数
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);

论是客户依旧服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第贰个参数钦点接收端套接字描述符;第一个参数指明二个缓冲区,该缓
冲区用来存放recv函数接收到的多少;第多个参数指明buf的长短;第5个参数一般置0。那里只描述同步Socket的recv函数的实践流程。当使用
程序调用recv函数时,recv先等待s的发送缓冲中的数据被协议传送实现,即便协议在传送s的出殡缓冲中的数据时出现互联网错误,那么recv函数再次回到SOCKET_EHavalROLAND,如若s的出殡和埋葬缓冲中尚无数据可能数额被协议成功发送达成后,recv先检查套接字s的接收缓冲区,假如s接收缓冲区中没有数据
只怕协议正在接收数据,那么recv就径直守候,只到协和式飞机把数据接受达成。当协议把数量接收完结,recv函数就把s的吸收缓冲中的数据copy到buf
中(注意协议接收到的多少可能大于buf的长短,所以在那种情况下要调用一遍recv函数才能把s的接收缓冲中的数据copy完。recv函数仅仅是
copy数据,真正的接收数据是说道来形成的),recv函数重回其实际copy的字节数。如若recv在copy时出错,那么它回到
SOCKET_EOdysseyRO酷路泽;假使recv函数在等候协议接收数据时互联网中断了,那么它重临0。
瞩目:在Unix系统下,若是recv函数在等候协议接收数据时互联网断开了,那么调用recv的历程会接到到2个SIGPIPE信号,进度对该信号的暗中同意处理是过程终止。

六、recv函数
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);

论是客户仍旧服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第①个参数内定接收端套接字描述符;第③个参数指美赞臣个缓冲区,该缓
冲区用来存放recv函数接收到的数额;第二个参数指明buf的长短;第七个参数一般置0。那里只描述同步Socket的recv函数的实施流程。当使用
程序调用recv函数时,recv先等待s的发送缓冲中的数据被协议传送实现,假若协议在传送s的出殡缓冲中的数据时出现网络错误,那么recv函数再次来到SOCKET_E昂CoraRO途胜,如果s的出殡和埋葬缓冲中并未多少或许数额被协议成功发送实现后,recv先检查套接字s的接收缓冲区,假使s接收缓冲区中一贯不数据
恐怕协议正在接收数据,那么recv就径直等候,只到协和式飞机把数据接受完成。当协议把数量接收完成,recv函数就把s的收取缓冲中的数据copy到buf
中(注意协议接收到的数额恐怕大于buf的长短,所以在这种景况下要调用四次recv函数才能把s的收纳缓冲中的数据copy完。recv函数仅仅是
copy数据,真正的接收数据是说道来形成的),recv函数重返其实际copy的字节数。假如recv在copy时出错,那么它回到
SOCKET_E奥迪Q7RO奇骏;若是recv函数在等候协议接收数据时互联网中断了,那么它再次来到0。
专注:在Unix系统下,假如recv函数在守候协议接收数据时网络断开了,那么调用recv的经过会接收到二个SIGPIPE信号,进度对该信号的暗中认可处理是经过终止。

function GetSmsParams(var SendSmsCnt, HaveNotSendCnt, ReciveSmsCnt,
HaveNotReadSmsCnt: integer): integer; stdcall;
函数表达:
获取平台的有关参数
参数表达:
SendSmsCnt 发件箱的总短信数
HaveNotSendCnt 未发的短信数量
ReciveSmsCnt 收件箱中已吸收接纳短信的数额
HaveNotReadSmsCnt 未读短信的多寡

function GetSmsParams(var SendSmsCnt, HaveNotSendCnt, ReciveSmsCnt,
HaveNotReadSmsCnt: integer): integer; stdcall;
函数表明:
收获平台的连锁参数
参数表明:
SendSmsCnt 发件箱的总短信数
HaveNotSendCnt 未发的短信数量
ReciveSmsCnt 收件箱中已接收短信的数目
HaveNotReadSmsCnt 未读短信的数额

七、bind函数
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);

成立了叁个Socket今后,套接字数据结构中有二个暗中认可的IP地址和暗许的端口号。四个服务程序必须调用bind函数来给其绑定五个IP地址和3个特定
的端口号。客户程序一般不要调用bind函数来为其Socket绑定IP地址和断口号。该函数的第三个参数内定待绑定的Socket描述符;第四个参数钦点多个sockaddr结构,该协会是这么定义的:
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
sa_family钦点地址族,对于TCP/IP协议族的套接字,给其置AF_INET。当对TCP/IP协议族的套接字举行绑定时,大家普通使用另3个地方结构:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};

中sin_family置AF_INET;sin_port指明端口号;sin_addr结构体中唯有二个唯一的字段s_addr,表示IP地址,该字段
是三个整数,一般用函数inet_addr()把字符串方式的IP地址转换到unsigned
long型的整数值后再置给s_addr。有的服务器是多宿主机,至少有五个网卡,那么运行在那样的服务器上的服务程序在为其Socket绑定IP地址时
能够把htonl(INADD汉兰达_ANY)置给s_addr,这样做的好处是无论哪个网段上的客户程序都能与该服务程序通讯;要是只给运维在多宿主机上的
服务程序的Socket绑定二个原则性的IP地址,那么就唯有与该IP地址处于同贰个网段上的客户程序才能与该服务程序通讯。我们用0来填充
sin_zero数组,目标是让sockaddr_in结构的高低与sockaddr结构的高低一样。下边是一个bind函数调用的例证:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8888);
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(ListenSocket,(struct sockaddr *)&saddr,sizeof(saddr));

七、bind函数
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);

成立了多少个Socket以往,套接字数据结构中有1个暗中认可的IP地址和暗中同意的端口号。八个服务程序必须调用bind函数来给其绑定二个IP地址和3个特定
的端口号。客户程序一般不要调用bind函数来为其Socket绑定IP地址和断口号。该函数的第二个参数钦点待绑定的Socket描述符;第二个参数钦命一个sockaddr结构,该组织是那样定义的:
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
sa_family钦点地址族,对于TCP/IP协议族的套接字,给其置AF_INET。当对TCP/IP协议族的套接字进行绑定时,大家日常使用另三个地方结构:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};

中sin_family置AF_INET;sin_port指明端口号;sin_addr结构体中只有2个唯一的字段s_addr,表示IP地址,该字段
是3个平头,一般用函数inet_addr()把字符串格局的IP地址转换到unsigned
long型的整数值后再置给s_addr。有的服务器是多宿主机,至少有七个网卡,那么运维在这样的服务器上的服务程序在为其Socket绑定IP地址时
能够把htonl(INADDCRUISER_ANY)置给s_addr,那样做的裨益是无论哪个网段上的客户程序都能与该服务程序通信;倘使只给运维在多宿主机上的
服务程序的Socket绑定2个一定的IP地址,那么就唯有与该IP地址处于同四个网段上的客户程序才能与该服务程序通讯。我们用0来填充
sin_zero数组,指标是让sockaddr_in结构的大大小小与sockaddr结构的大大小小同等。上边是1个bind函数调用的例证:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons;
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(ListenSocket,(struct sockaddr *)&saddr,sizeof;

 

 

八、listen函数
int listen( SOCKET s, int backlog );
服务程序能够调用listen函数使其流套接字s处于监听状态。处于监听状态的流套接字s将维护三个客户连接请求队列,该队列最多容纳backlog个客户连接请求。借使该函数执行成功,则再次回到0;假如执行破产,则赶回SOCKET_ERROR。

八、listen函数
int listen( SOCKET s, int backlog );
服务程序能够调用listen函数使其流套接字s处于监听状态。处于监听状态的流套接字s将保障四个客户连接请求队列,该队列最多容纳backlog个客户连接请求。假诺该函数执行成功,则再次回到0;假设履行破产,则赶回SOCKET_ERROR。

九、accept函数
SOCKET accept(
SOCKET s,
struct sockaddr FAR *addr,
int FAR *addrlen
);

务程序调用accept函数从处于监听状态的流套接字s的客户连接请求队列中取出排在最前的八个客户请求,并且创办叁个新的套接字来与客户套接字创造连接
通道,假诺总是成功,就回来新创造的套接字的描述符,今后与客户套接字交流数据的是新成立的套接字;假使败北就赶回INVALID_SOCKET。该函数
的第①个参数钦命处于监听状态的流套接字;操作系统利用第一个参数来回到连接客户的地方结构;操作系统利用第⑥个参数来回到地址结构addr的长短。上面是三个调用accept的例证:
struct sockaddr_in ServerSocketAddr;
int addrlen;
addrlen=sizeof(ServerSocketAddr);
ServerSocket=accept(ListenSocket,(struct sockaddr
*)&ServerSocketAddr,&addrlen);

九、accept函数
SOCKET accept(
SOCKET s,
struct sockaddr FAR *addr,
int FAR *addrlen
);

务程序调用accept函数从处于监听状态的流套接字s的客户连接请求队列中取出排在最前的2个客户请求,并且创办3个新的套接字来与客户套接字创设连接
通道,就算两次三番成功,就再次回到新创制的套接字的描述符,现在与客户套接字调换数据的是新创设的套接字;假设退步就回去INVALID_SOCKET。该函数
的首先个参数钦定处于监听状态的流套接字;操作系统利用第②个参数来回到连接客户的地方结构;操作系统利用第10个参数来回到地址结构addr的长度。上边是三个调用accept的例子:
struct sockaddr_in ServerSocketAddr;
int addrlen;
addrlen=sizeof(ServerSocketAddr);
ServerSocket=accept(ListenSocket,(struct sockaddr
*)&ServerSocketAddr,&addrlen);

十、connect函数
int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
客户程序调用connect函数来使客户Socket
s与监听于name所钦点的电脑的一定端口上的劳动Socket举办三番五次。若是总是成功,connect重返0;要是战败则赶回SOCKET_E奥德赛RO奥迪Q3。下边是3个例子:
struct sockaddr_in daddr;
memset((void *)&daddr,0,sizeof(daddr));
daddr.sin_family=AF_INET;
daddr.sin_port=htons(8888);
daddr.sin_addr.s_addr=inet_addr(“133.197.22.4”);
connect(ClientSocket,(struct sockaddr *)&daddr,sizeof(daddr));

十、connect函数
int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
客户程序调用connect函数来使客户Socket
s与监听于name所钦定的处理器的一定端口上的劳动Socket举办连接。固然总是成功,connect再次回到0;要是退步则赶回SOCKET_E奥德赛ROPAJERO。上面是3个例子:
struct sockaddr_in daddr;
memset&daddr,0,sizeof;
daddr.sin_family=AF_INET;
daddr.sin_port=htons;
daddr.sin_addr.s_addr=inet_addr(“133.197.22.4”);
connect(ClientSocket,(struct sockaddr *)&daddr,sizeof;

MessageBox对话框是相比常用的1个音信对话框,其不仅能够定义显示的音讯内容、音讯提醒图标,而且能够定义按钮组合及对话框的标题,是一个功用齐全的消息对话框音信提醒图标,而且能够定义按钮组合及对话框的标题,是三个功效齐全的消息对框。
 一 、函数原型及参数
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word):
Integer;
 hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,不然可用0,使其一直作为桌面窗口的子窗口。
 Text:欲展现的音讯字符串。
 Caption:对话框标题字符串。
 Type:对话框类型常量。
 该函数的重返值为整数,用于对话框按钮的甄别。
 ② 、类型常量
 对话框的档次常量可由按钮组合、缺省按钮、展现图标、运转方式七种常量组合而成。
 (1)按钮组合常量
 MB_OK = $00000000;         //1个明确按钮
 MB_OKCANCEL = $00000001;      //1个规定按钮,1个注销按钮
 MB_ABO瑞虎TRET途观YIGNORE =
$00000002;  //三个尤其终止按钮,几个重试按钮,八个忽略按钮
 MB_YESNOCANCEL = $00000003;    
//一个是按钮,三个否按钮,二个撤回按钮
 MB_YESNO = $00000004;        //3个是按钮,一个否按钮
 MB_RET路虎极光YCANCEL = $00000005;     //3个重试按钮,3个撤回按钮
 (2)缺省按钮常量
 MB_DEFBUTTON1 = $00000000;     //第三个按钮为缺省按钮
 MB_DEFBUTTON2 = $00000100;     //首个按钮为缺省按钮
 MB_DEFBUTTON3 = $00000200;     //第多个按钮为缺省按钮
 MB_DEFBUTTON4 = $00000300;     //第多少个按钮为缺省按钮
 (3)图标常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“?”号图标
 MB_ICONEXCLAMATION = $00000030;    //“!”号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USE奇骏ICON = $00000080;        //用户图标
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”号图标
 MB_ICONERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 (4)运维格局常量
 MB_APPLMODAL =
$00000000;    //应用程序形式,在未完工对话框前也能切换成另一应用程序
 MB_SYSTEMMODAL =
$0000一千;   //系统方式,必须结束对话框后,才能做其余操作
 MB_TASKMODAL =
$0000三千;    //义务情势,在未终止对话框前也能切换来另一应用程序
 MB_HELP = $00004000;       //Help Button
 ③ 、函数重临值
 0            //对话框建立退步
 idOk = 1        //按鲜明按钮
 idCancel = 2      //按撤除按钮
 idAbout = 3       //按格外终止按钮
 idRetry = 4       //按重试按钮
 idIgnore = 5      //按忽略按钮
 idYes = 6        //按是按钮
 idNo = 7        //按否按钮

MessageBox对话框是比较常用的1个新闻对话框,其不仅能够定义突显的消息内容、新闻提示图标,而且可以定义按钮组合及对话框的标题,是二个功效齐全的音信对话框音讯提示图标,而且能够定义按钮组合及对话框的标题,是叁个成效齐全的音信对框。
 ① 、函数原型及参数
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word):
Integer;
 hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可采纳窗体的Handle属性,不然可用0,使其一向作为桌面窗口的子窗口。
 Text:欲突显的信息字符串。
 Caption:对话框标题字符串。
 Type:对话框类型常量。
 该函数的再次回到值为整数,用于对话框按钮的识别。
 二 、类型常量
 对话框的门类常量可由按钮组合、缺省按钮、展现图标、运行形式五种常量组合而成。
 按钮组合常量
 MB_OK = $00000000;         //一个鲜明按钮
 MB_OKCANCEL = $00000001;      //3个规定按钮,3个收回按钮
 MB_ABO索罗德TRETLANDYIGNORE =
$00000002;  //八个很是终止按钮,三个重试按钮,一个忽视按钮
 MB_YESNOCANCEL = $00000003;    
//1个是按钮,1个否按钮,两个撤销按钮
 MB_YESNO = $00000004;        //1个是按钮,多少个否按钮
 MB_RET福睿斯YCANCEL = $00000005;     //三个重试按钮,八个打消按钮
 缺省按钮常量
 MB_DEFBUTTON1 = $00000000;     //第三个按钮为缺省按钮
 MB_DEFBUTTON2 = $00000100;     //第三个按钮为缺省按钮
 MB_DEFBUTTON3 = $00000200;     //第⑨个按钮为缺省按钮
 MB_DEFBUTTON4 = $00000300;     //第十三个按钮为缺省按钮
 图标常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“?”号图标
 MB_ICONEXCLAMATION = $00000030;    //“!”号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USERAV4ICON = $00000080;        //用户图标
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”号图标
 MB_ICONERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 运转格局常量
 MB_APPLMODAL =
$00000000;    //应用程序情势,在未终止对话框前也能切换来另一应用程序
 MB_SYSTEMMODAL =
$0000一千;   //系统格局,必须终止对话框后,才能做任何操作
 MB_TASKMODAL =
$0000两千;    //职责情势,在未告竣对话框前也能切换成另一应用程序
 MB_HELP = $00004000;       //Help Button
 叁 、函数重临值
 0            //对话框建立战败
 idOk = 1        //按明确按钮
 idCancel = 2      //按裁撤按钮
 idAbout = 3       //按非凡终止按钮
 idRetry = 4       //按重试按钮
 idIgnore = 5      //按忽略按钮
 idYes = 6        //按是按钮
 idNo = 7        //按否按钮

◇[DELPHI]转换函数的概念及表明
datetimetofiledate (datetime:Tdatetime):longint;
将Tdatetime格式的日期时间值转换来DOS格式的日期时间值
datetimetostr (datetime:Tdatetime):string;
将Tdatatime格式变量转换来字符串,假使datetime参数不分包日期值,重回字符串日期展现成为00/00/00,借使datetime参数
中绝非时间值,再次来到字符串中的时间部分显得成为00:00:00 AM
datetimetostring (var result string;
const format:string;
datetime:Tdatetime);
遵照给定的格式字符串转换时间和日期值,result为结果字符串,format为转移格式字符串,datetime为日期时间值
datetostr (date:Tdatetime)
使用shortdateformat全局变量定义的格式字符串将date参数转换来对应的字符串
floattodecimal (var result:Tfloatrec;value:
extended;precision,decimals:
integer); 将浮点数转换到十进制表示
floattostr (value:extended):string
将浮点数value转换来字符串格式,该转换使用普通数字格式,转换的有效位数为十八人。
floattotext (buffer:pchar;value:extended;
format:Tfloatformat;precision,
digits:integer):integer;
用给定的格式、精度和小数将浮点值value转换到十进制表示方式,转换结果存放于buffer参数中,函数重临值为存款和储蓄到buffer中的字符位数,buffer是非0结果的字符串缓冲区。
floattotextfmt (buffer:pchar;value:extended;
format:pchar):integer
用给定的格式将浮点值value转换来十进制表示方式,转换结果存放于buffer参数中,函数重返值为存款和储蓄到buffer中的字符位数。
inttohex (value:longint;digits:integer):
string;
将给定的数值value转换到十六进制的字符串。参数digits给出转换结果字符串包涵的数字位数。
inttostr (value:longint):string 将整数转换到十进制格局字符串
strtodate (const S:string):Tdatetime
将字符串转换到日期值,S必须包括贰个法定的格式日期的字符串。
strtodatetime (const S:string):Tdatetime
将字符串S转换到日期时间格式,S必须具有MM/DD/YY
HH:MM:SS[AM|PM]格式,当中国和东瀛期和岁月相隔符与系统时代时间常量设置相关。要是没有钦点AM或PM音讯,表示使用24小时制。
strtofloat (const S:string):extended;
将给定的字符串转换来浮点数,字符串具有如下格式:
[+|-]nnn…[.]nnn…[<+|-><E|e><+|->nnnn]
strtoint (const S:string):longint
将数字字符串转换到整数,字符串可以是十进制或十六进制格式,要是字符串不是2个官方的数字字符串,系统爆发ECONVE普拉多TE奥迪Q5RO中华V格外
strtointdef (const S:string;default:
longint):longint;
将字符串S转换来数字,假使不能够将S转换来数字,strtointdef函数再次来到参数default的值。
澳门新萄京,strtotime (const S:string):Tdatetime
将字符串S转换来TDATETIME值,S具有HH:MM:SS[AM|PM]格式,实际的格式与系统的小时相关的全局变量有关。
timetostr (time:Tdatetime):string;
将参数TIME转换到字符串。转换结果字符串的格式与系统的光阴相关常量的装置有关。

◇[DELPHI]更换函数的概念及表达
datetimetofiledate (datetime:Tdatetime):longint;
将Tdatetime格式的日期时间值转换来DOS格式的日期时间值
datetimetostr (datetime:Tdatetime):string;
将Tdatatime格式变量转换到字符串,假使datetime参数不含有日期值,再次来到字符串日期展现成为00/00/00,如若datetime参数
中平昔不时间值,重回字符串中的时间部分显得成为00:00:00 AM
datetimetostring (var result string;
const format:string;
datetime:Tdatetime);
依据给定的格式字符串转换时间和日期值,result为结果字符串,format为转移格式字符串,datetime为日期时间值
datetostr (date:Tdatetime)
使用shortdateformat全局变量定义的格式字符串将date参数转换来对应的字符串
floattodecimal (var result:Tfloatrec;value:
extended;precision,decimals:
integer); 将浮点数转换来十进制表示
floattostr (value:extended):string
将浮点数value转换到字符串格式,该转换使用普通数字格式,转换的有效位数为1八个人。
floattotext (buffer:pchar;value:extended;
format:Tfloatformat;precision,
digits:integer):integer;
用给定的格式、精度和小数将浮点值value转换来十进制表示情势,转换结果存放于buffer参数中,函数重回值为存款和储蓄到buffer中的字符位数,buffer是非0结果的字符串缓冲区。
floattotextfmt (buffer:pchar;value:extended;
format:pchar):integer
用给定的格式将浮点值value转换来十进制表示格局,转换结果存放于buffer参数中,函数重返值为存款和储蓄到buffer中的字符位数。
inttohex (value:longint;digits:integer):
string;
将给定的数值value转换到十六进制的字符串。参数digits给出转换结果字符串包罗的数字位数。
inttostr (value:longint):string 将整数转换来十进制方式字符串
strtodate (const S:string):Tdatetime
将字符串转换到日期值,S必须包涵3个法定的格式日期的字符串。
strtodatetime (const S:string):Tdatetime
将字符串S转换来日期时间格式,S必须具有MM/DD/YY
HH:MM:SS[AM|PM]格式,当中国和东瀛期和时间相隔符与系统时代时间常量设置相关。要是没有钦赐AM或PM新闻,表示使用24小时制。
strtofloat (const S:string):extended;
将给定的字符串转换来浮点数,字符串具有如下格式:
[+|-]nnn…[.]nnn…[<+|-><E|e><+|->nnnn]
strtoint (const S:string):longint
将数字字符串转换到整数,字符串能够是十进制或十六进制格式,假使字符串不是2个法定的数字字符串,系统爆发ECONVE奥迪Q5TECR-VROENCORE很是
strtointdef (const S:string;default:
longint):longint;
将字符串S转换来数字,如若不能将S转换来数字,strtointdef函数再次回到参数default的值。
strtotime (const S:string):Tdatetime
将字符串S转换来TDATETIME值,S具有HH:MM:SS[AM|PM]格式,实际的格式与系统的时刻相关的全局变量有关。
timetostr (time:Tdatetime):string;
将参数TIME转换来字符串。转换结果字符串的格式与系统的时光相关常量的安装有关。

unit net;

unit net;

interface
  uses
      sysutils
     ,windows
     ,dialogs
     ,winsock
     ,classes
     ,comobj
     ,wininet;

interface
uses
sysutils
,windows
,dialogs
,winsock
,classes
,comobj
,wininet;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图