客户机和服务器可用互相通讯。 直接贴出代码吧,没有优化,代码可能有些冗余,只是实现了互相发送字符串的功能。仅供参考。
服务器端:
unit untserver;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Winsock;
type
clients = record
soc :TSocket;
add :sockaddr_in;
end;
pclients = ^clients;
Tserver = class(TForm)
edt1: TEdit;
lbl1: TLabel;
btn1: TButton;
mmo1: TMemo;
lbl2: TLabel;
edt2: TEdit;
btn2: TButton;
btn3: TButton;
edt3: TEdit;
procedure btn1Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
s :TSocket;
acThreadID :DWORD;
end;
procedure ServerAccept(s :TSocket);stdcall;
procedure SocketWorkThread(ns :TSocket);stdcall;
const buflen=100;
var
server: Tserver;
clientslist :TList;
implementation
{$R *.dfm}
procedure Tserver.btn1Click(Sender: TObject);
var
wsa :TWSAData;
wsstatus :Integer;
sa : sockaddr_in;
begin
wsstatus := WSAStartup($02