Winsock API TCPServer

program  exe ;
{$apptype console}

uses
 
Windows, Winsock, SysUtils
;

var
FSocket,CSocket:TSocket
;
buf:array[0..255]of char
;
wsaData:TWSADATA
;
Server:TSockAddrIn
;
err,len,id:integer
;
const
   
CRLF=#13#10
;
begin
err := WSAStartup(MAKEWORD(2,0),WSAData
);
if err=-1
then
begin
writeln('WSAStartup初始化失败!'
);
exit
;
end
;
FSocket := socket(AF_INET, SOCK_STREAM,0
);
 
if FSocket=SOCKET_ERROR
then
begin
writeln('socket创建套接口失败!'
);
WSACleanup
();
exit
;
end
;
Server.sin_family := AF_INET
;
Server.sin_addr.s_addr:=INADDR_ANY;
//host
Server.sin_port:=htons(40400);
//port
bind(FSocket,server,sizeof(server
));
len := sizeof(server
);
getsockname(FSocket,server,len
);
if listen(FSocket,5)<>0
then
begin
writeln('bind绑定错误!'
);
Closesocket(FSocket
);
WSACleanup
();
exit
;
end; CSocket:=accept(FSocket,@server,@len
);
if CSocket=-1
then
begin
writeln('CSocket连接错误!'
);
Closesocket(FSocket
);
WSACleanup
();
exit
;
end
;
id := connect(CSocket,Server, SizeOf(Server
));
if id <>0
then
begin
strcopy(buf
,
     
char($00)+char($00)+char($00)+char($00)+char($00)+char($00)+char($00
)+
     
char($00)+char($01)+char($00)+char($CA)+char($67)+char($43)+char($B4
)+
     
char($7F)+char($00)+char($00)+char($01)+char($D0)+char($9D)+char($DA
)+
     
char($10)+char($82)+char($02)+char($F4)+char($3F)+char($02)+char($43
)+
     
char($FF)+char($67)+char($D7)+char($D1)+char($12)+char($33)+char($6A
)+
     
char($A3)+char($D8)+char($C6)+char($24)+char($D8)+char($50)+char($19
)+
     
char($8B)+char($26)+char($00)+char($00)+char($00)+char($00)+char($77
)+
     
char($77)+char($77)+char($2E)+char($59)+char($6F)+char($63)+char($6B
)+
     
char($73)+char($6B)+char($59)+char($2E)+char($63)+char($6F)+char($6D
)+
     
char($00)+char($77)+char($77)+char($77)+char($2E)+char($59)+char($6F
)+
     
char($63)+char($6B)+char($73)+char($6B)+char($59)+char($2E)+char($63
)+
     
char($6F)+char($6D)+char($00)+char($77)+char($77)+char($77)+char($2E
)+
     
char($59)+char($6F)+char($63)+char($6B)+char($73)+char($6B)+char($59
)+
     
char($2E)+char($63)+char($6F)+char($6D)+char($00)+char($77)+char($77
)+
     
char($77)+char($2E)+char($59)+char($6F)+char($63)+char($6B)+char($73
)+
     
char($6B)+char($59)+char($2E)+char($63)+char($6F)+char($6D)+char($00
)+
     
char($77)+char($77)+char($77)+char($2E)+char($59)+char($6F)+char($63
)+
     
char($6B)+char($73)+char($6B)+char($59)+char($2E)+char($63)+char($6F
)+
     
char($6D)+char($00
)
);
send(CSocket,buf,strlen(buf),0
);
end
;
//    数据处理
strcopy(buf
,
     
char($00)+char($00)+char($00)+char($00)+char($00)+char($00)+char($00
)+
     
char($00)+char($01)+char($00)+char($CA)+char($67)+char($43)+char($B4
)+
     
char($7F)+char($00)+char($00)+char($01)+char($D0)+char($9D)+char($DA
)+
     
char($10)+char($82)+char($02)+char($F4)+char($3F)+char($02)+char($43
)+
     
char($FF)+char($67)+char($D7)+char($D1)+char($12)+char($33)+char($6A
)+
     
char($A3)+char($D8)+char($C6)+char($24)+char($D8)+char($50)+char($19
)+
     
char($8B)+char($26)+char($00)+char($00)+char($00)+char($00)+char($77
)+
     
char($77)+char($77)+char($2E)+char($59)+char($6F)+char($63)+char($6B
)+
     
char($73)+char($6B)+char($59)+char($2E)+char($63)+char($6F)+char($6D
)+
     
char($00)+char($77)+char($77)+char($77)+char($2E)+char($59)+char($6F
)+
     
char($63)+char($6B)+char($73)+char($6B)+char($59)+char($2E)+char($63
)+
     
char($6F)+char($6D)+char($00)+char($77)+char($77)+char($77)+char($2E
)+
     
char($59)+char($6F)+char($63)+char($6B)+char($73)+char($6B)+char($59
)+
     
char($2E)+char($63)+char($6F)+char($6D)+char($00)+char($77)+char($77
)+
     
char($77)+char($2E)+char($59)+char($6F)+char($63)+char($6B)+char($73
)+
     
char($6B)+char($59)+char($2E)+char($63)+char($6F)+char($6D)+char($00
)+
     
char($77)+char($77)+char($77)+char($2E)+char($59)+char($6F)+char($63
)+
     
char($6B)+char($73)+char($6B)+char($59)+char($2E)+char($63)+char($6F
)+
     
char($6D)+char($00
)
);
send(CSocket,buf,strlen(buf),0
);
repeat
recv(CSocket,buf,strlen(buf),0
);
send(CSocket,buf,strlen(buf),0
);
until pos('Q',buf)>0
;

Closesocket(FSocket
);
WSACleanup
();
end.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值