源代码如下【客户端】
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SHUDPSocket;
type
TCommBlock = record
username, pwd, lx: string[100];
end;
type
TCommBlock1 = record
msg: string[100];
end;
type
TForm1 = class(TForm)
UDPSocket: TSHUDPSocket;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
sComm: TCommBlock1;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
dl: TCommBlock;
i: Integer;
begin
UDPSocket.Port := 8888;
UDPSocket.Active := true;
for i := 0 to 1000 do //向服务器端发送1000条数据
begin
FillChar(dl, SizeOf(TCommBlock), 0);
dl.username := '字符串1';
dl.pwd :='字符串2;
dl.lx := inttostr(i); //记录编号
UDPSocket.SendBuf(dl, SizeOf(dl), '127.0.0.1',9999);
end;
end;
end.
服务端代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, SHUDPSocket, StdCtrls;
type
TCommBlock = record
username, pwd, lx: string[100];
end;
type
TCommBlock1 = record
msg: string[100];
end;
type
TForm1 = class(TForm)
SHUDPSocket1: TSHUDPSocket;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure SHUDPSocket1DataRead(UDPSocket: TSHUDPSocket;
const PeerInf: TPeerInfo);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
dl: TCommBlock;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
SHUDPSocket1.Port := 9999;
SHUDPSocket1.Active := true;
end;procedure TForm1.SHUDPSocket1DataRead(UDPSocket: TSHUDPSocket;
const PeerInf: TPeerInfo);
var
IsRecv: boolean;
ms: TCommBlock1;
begin
try
IsRecv := SHUDPSocket1.RecvBuf(dl, SizeOf(dl));
except
IsRecv := false;
end;
if IsRecv then
begin
memo1.Lines.Add(dl.username+' '+dl.pwd+' '+dl.lx);
end;
end;
end.每次发送 服务端最多只能接受到50条左右 还有950条接受不到 该怎么解决 忘高手能指点迷津!在此谢谢!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SHUDPSocket;
type
TCommBlock = record
username, pwd, lx: string[100];
end;
type
TCommBlock1 = record
msg: string[100];
end;
type
TForm1 = class(TForm)
UDPSocket: TSHUDPSocket;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
sComm: TCommBlock1;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
dl: TCommBlock;
i: Integer;
begin
UDPSocket.Port := 8888;
UDPSocket.Active := true;
for i := 0 to 1000 do //向服务器端发送1000条数据
begin
FillChar(dl, SizeOf(TCommBlock), 0);
dl.username := '字符串1';
dl.pwd :='字符串2;
dl.lx := inttostr(i); //记录编号
UDPSocket.SendBuf(dl, SizeOf(dl), '127.0.0.1',9999);
end;
end;
end.
服务端代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, SHUDPSocket, StdCtrls;
type
TCommBlock = record
username, pwd, lx: string[100];
end;
type
TCommBlock1 = record
msg: string[100];
end;
type
TForm1 = class(TForm)
SHUDPSocket1: TSHUDPSocket;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure SHUDPSocket1DataRead(UDPSocket: TSHUDPSocket;
const PeerInf: TPeerInfo);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
dl: TCommBlock;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
SHUDPSocket1.Port := 9999;
SHUDPSocket1.Active := true;
end;procedure TForm1.SHUDPSocket1DataRead(UDPSocket: TSHUDPSocket;
const PeerInf: TPeerInfo);
var
IsRecv: boolean;
ms: TCommBlock1;
begin
try
IsRecv := SHUDPSocket1.RecvBuf(dl, SizeOf(dl));
except
IsRecv := false;
end;
if IsRecv then
begin
memo1.Lines.Add(dl.username+' '+dl.pwd+' '+dl.lx);
end;
end;
end.每次发送 服务端最多只能接受到50条左右 还有950条接受不到 该怎么解决 忘高手能指点迷津!在此谢谢!
解决方案 »
- Delphi操作excel,使用NumberFormatLocal设置格式的问题
- 怎样在IE中显示,由delphi中的RichEdit写入数据库的BLOB数据?
- 有关于label控件(如何实现背景透明,在线等待,急)
- 那位兄弟有做过库存方面的源程序给我参考一下
- 第一次吐血提问:如何用ADOX修改Access数据库中的一个自增型的主键字段?
- 请教扫描取得图书,商品条形码的方法
- add file to project问题!
- 如何搞个较长时间的定时呢?timer的间隔太短了!
- 弱弱一问: 在sdk下为什么我向内存dc里画线,再拷贝进设备dc,没有起作用?
- 在数据库中怎样存储图片?
- 前辈们进来看看,关于RadioGroup和数据库的问题 在线等..
- DELPhi query 搜索大容量數據DBF時非常慢
同上.否则就改用TCP吧.UDP必然会掉包,只要在可容忍程度内就无视吧.