socket,数据传送问题

sxd78 2003-02-14 05:13:31
clientSocket,serverSocket通讯,传递Recorder型数据,不用文件传递,接受的数据与发送不一样,请问如何解决,最好有代玛
...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxd78 2003-02-15
  • 打赏
  • 举报
回复
请问用文本接收,发送怎么实现
发送:serverSocket.sendtext();命令
接收recorder^:=pointer(socket.ReceiveText)
因为发送端已用sendtext()经确定,所以接收用ReceiveBuf()可以吗;我用socket.ReceiveText数据不一致!怎么解决---,急,不够分还可以加!
Billy_Chen28 2003-02-15
  • 打赏
  • 举报
回复
用Read试试
Billy_Chen28 2003-02-14
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ScktComp;

type
TInfo = record
x : integer ;
y : integer ;
clr : integer ;
end;

TForm1 = class(TForm)
clientsocket: TClientSocket;
serversocket: TServerSocket;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
Edit4: TEdit;
Button3: TButton;
Label1: TLabel;
Edit5: TEdit;
Edit6: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure clientsocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure serversocketAccept(Sender: TObject;
Socket: TCustomWinSocket);
procedure serversocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure serversocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure clientsocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure clientsocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure serversocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ChessPoint : TInfo ;
IsServer : Boolean;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
IsServer := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket.Active := False;
serversocket.Active := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
var server : string ;
begin
If serversocket.Active then serversocket.Active := False;
if clientsocket.active then clientsocket.active := false;
If InputQuery('Connect To','connect to',server) then
with clientsocket do
begin
host := server ;
active := True;
end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
chesspoint.x := strtoint(edit1.text);
chesspoint.y := strtoint(edit2.text);
chesspoint.clr := strtoint(edit3.text);
If IsServer then
serversocket.Socket.Connections[0].SendBuf(ChessPoint,sizeof(chesspoint))
else
clientsocket.Socket.SendBuf(ChessPoint,sizeof(chesspoint));



end;

procedure TForm1.clientsocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
label1.Caption := 'success to connect to server ';
end;

procedure TForm1.serversocketAccept(Sender: TObject;
Socket: TCustomWinSocket);
begin
IsServer := True;
end;

procedure TForm1.serversocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
label1.Caption :='success to connect to client ';
end;

procedure TForm1.serversocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
label1.Caption := 'disconnect to client';
end;

procedure TForm1.clientsocketDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
label1.Caption :='disconnect to server ';
end;

procedure TForm1.clientsocketRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
clientsocket.Socket.ReceiveBuf(chesspoint,12);
edit4.Text := inttostr( chesspoint.x );
edit5.text := inttostr ( chesspoint.y);
edit6.text := inttostr ( chesspoint.clr);
end;

procedure TForm1.serversocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
serversocket.Socket.Connections[0].ReceiveBuf(chesspoint,12);
edit4.Text := inttostr( chesspoint.x );
edit5.text := inttostr ( chesspoint.y);
edit6.text := inttostr ( chesspoint.clr);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
serversocket.Close ;
clientsocket.Close ;
end;

end.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧