HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4  
Старый 08.03.2006, 14:32
Raider
Познающий
Регистрация: 02.05.2005
Сообщений: 42
С нами: 11065621

Репутация: 9
По умолчанию

Сурсы в конце топика, но чтоб всё было понятно я решил немного пояснить что к чему )
-
Для начала опишем структуру которая будет нести в себе информацию о сообщении,
а канкретно:
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

Последний раз редактировалось Raider; 09.03.2006 в 00:38.. Причина: Исправил небольшую ошибку в коде
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи для Новичков..... ~Fenix~ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 21 10.06.2006 14:11
Делфи Veteran Разное - Покупка, продажа, обмен 0 19.01.2006 01:05
Помгите plzZzzZ RAZIELE Болталка 20 16.11.2005 18:37
Помгите с установкой ICQ Pro 5.02 Kamenev Skype, IRC, ICQ, Jabber и другие IM 5 21.08.2005 15:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...