Сурсы в конце топика, но чтоб всё было понятно я решил немного пояснить что к чему )
-
Для начала опишем структуру которая будет нести в себе информацию о сообщении,
а канкретно:
1) Текст сообщения.
2) Заголовок соощения.
3) Тип сообщения.
Код:
type
TMyMsg = record
Text : array [0..127] of Char;
Caption: array [0..127] of Char;
MsgType: UINT;
end;
Теперь обьявим её:
Код:
var
MyMsg: TMyMsg; // Экземпляр структуры
Далее по нажатию на Button1 заполним нашу структуру, и попробуем установить соединение с сервером:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ZeroMemory(@MyMsg, SizeOf(TMyMsg)); // На всякий случай чистим
CopyMemory(@MyMsg.Text, PChar(StringReplace(Edit2.Text, '|', #13, [rfReplaceAll])), Length(Edit2.Text)); // Заносим в поле "Text" нашей структуры текст сообщения
CopyMemory(@MyMsg.Caption, PChar(Edit1.Text), Length(Edit1.Text)); // Заносим заголовок сообщения
// Определяем тип сообщения
if not RadioButton1.Checked then MyMsg.MsgType := MB_YESNO;
if not SpeedButton1.Down then MyMsg.MsgType := MyMsg.MsgType or MB_ICONASTERISK;
ClientSocket1.Open; // Подключаемся
end;
Если подключение прошло успешно, то попробуем отправить нашу структуру:
(событие "OnConnect" у ClientSocket1)
Код:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket)
begin
Socket.SendBuf(MyMsg, SizeOf(TMyMsg)); // Отправляем
Socket.Close; // Отключаемся
end;
Переходим к серверу. В задачу сервера входит получение данных в виде структуры "TMyMsg", и собственно
показ самого сообщения:
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
MyMsg: TMyMsg;
begin
ZeroMemory(@MyMsg, SizeOf(TMyMsg)); // На всякий случай чистим
if Socket.ReceiveLength >= SizeOf(TMyMsg) then // Проверяем сколько байт находится во входящем буфере сокета(для того чтобы убедится что вся структура получена)
begin
Socket.ReceiveBuf(MyMsg, SizeOf(TMyMsg));
// Дальше я надеюсь всё понятно :)
with MyMsg do
MessageBoxA(Application.Handle, Text, Caption, MsgType);
end;
end;
Исходник:
http://night444.narod.ru/help.rar