📄 u_p2p_chat.pas
字号:
unit U_P2P_CHAT;
interface
uses
SysUtils, Classes, DB, dbisamtb, IdUDPBase, IdUDPClient, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdUDPServer, IdSocketHandle, p2p_public;
procedure SendMsgButtonClick(Sender: TObject);
implementation
uses u_web_xtdl;
var
ServerIP, MyPublicIP, MyAccount: string;
ServerPORT, MyPublicPORT: integer;
//发送消息
procedure SendMsgButtonClick(Sender: TObject);
var
ChatDataPackage: TChatDataPackage;
_ToIP, _SendMsg, _ToAccount: string;
_ToPORT: Integer;
//tempItem: TListItem;
begin
{tempItem := UserList.Selected;
if (not assigned(tempItem)) or (tempItem = nil) then
begin
MessageBox(self.Handle, '请选择消息接收者! ', '提示', 0);
exit;
end;
_ToAccount := tempItem.Caption;
_ToIp := tempItem.SubItems[0];
_ToPORT := StrToInt(tempItem.SubItems[1]);
_SendMsg := SendMsgEdit.Text;
if length(_SendMsg) > 500 then
exit;
with ChatDataPackage do
begin
Head.MsgType := IntToStr(ChatMsgSign);
StrPCopy(Body.fromAccount, MyAccount);
StrPCopy(Body.toAccount, _ToAccount);
StrPCopy(Body.Msg, _SendMsg);
if CheckBox1.Checked then
StrPCopy(Body.IsNeedReBack, IsTrue)
else
StrPCopy(Body.IsNeedReBack, IsFalse);
StrPCopy(Body.IsReBackSigh, IsFalse);
//
end;
UdpClient.SendBuffer(_ToIP, _ToPORT, ChatDataPackage, SizeOf(ChatDataPackage)); }
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -