Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2009, 18:04   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию чат-сокеты

здравствуй народ....вот сделал чат на основе сокетов..но я сделал просто обмен сообщениями,а я еще хочу добавить возможностей,например приватные сообщения,чтоб можно было изменять цвет текста,вставить смайлы итд
вот код сервера
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ServerSocket1.Active then
 ServerSocket1.Close;
end;
procedure TForm1.FormCreate(Sender: TObject);
 var s: string;
begin
 ServerSocket1.Open;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var s: string;
 i: Integer;
begin
  s := Socket.ReceiveText;
for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
 ServerSocket1.Socket.Connections[i].SendText(s);
 Exit;
 end;
end.
вот код клиента
Код:
procedure TForm1.Button2Click(Sender: TObject);
 var s: string;
begin
 s :=nicname+':'+ edit1.Text;
ClientSocket1.Socket.SendText(s);
 edit1.Text:='';
 end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var s:string;
begin
s := Socket.ReceiveText;
Memo1.Lines.Insert(0,Copy(s,1,Pos(';',s)-1)+'> '+
 Copy(s,Pos(';',s)+1,Length(s)-Pos(';',s)));
 Exit;
 end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key = VK_RETURN then
 Button2.Click;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ClientSocket1.Open;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
form1.Enabled:=false;
form2.showmodal;
end;
end.
кто нибудь помогите добавить эти возможности к этому чату
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 19.10.2009 в 18:07.
betirsolt вне форума Ответить с цитированием
Старый 19.10.2009, 18:51   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Я делал так:
1. Хранил в первом байте нужное действие(например 1-сообщение в общий чат, 2-сообщение в приватный и тогда следующие байты до первого пробела-ник) и потом отправлял это серверу
2. На сервере читал первый байт и выполнял нужное действие
Типа:
Код:
s := Socket.ReceiveText;
if s[1]='1' then 
memo1.lines.add(copy(s,2,length(s)-1));
И т.п
3. Делал класс TUser и хранил в нём имя, номер его соединения(для сервера, чтобы быстро найти нужное соединение) и прочие данные
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 19.10.2009 в 18:55.
russian-stalker вне форума Ответить с цитированием
Старый 19.10.2009, 19:41   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от russian-stalker Посмотреть сообщение
Я делал так:
1. Хранил в первом байте нужное действие(например 1-сообщение в общий чат, 2-сообщение в приватный и тогда следующие байты до
примерно такой исходник у меня есть...но классы создавать я не умею...я щас добавил возможность изменения шрифта и цвета фона... я пока в свойстве хост написал локалхост..а как мне сделать чтобы он работал у всех..даже если я заранее не знаю IP будущих пользователей???
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 19.10.2009, 20:53   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Есть в DelphiX замечательный компонент и там он сам ищет пользователей. Там же можно комнаты создавать.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 19.10.2009, 23:56   #5
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от russian-stalker Посмотреть сообщение
Есть в DelphiX замечательный компонент и там он сам ищет пользователей. Там же можно комнаты создавать.
что за компонент???как называется???как им пользоваться??есть литература или исходник??
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 20.10.2009, 11:29   #6
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Ребята я записал в свойство хост свой IP...запускаю у себя сервер...потом скидываю знакомым клиенты,но на некоторых компах он пишет что сервет не найден,как сделать чтобы он работал на всех компах????помогите кто знает
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 21.10.2009 в 00:21.
betirsolt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сокеты SL1CK Общие вопросы C/C++ 8 05.10.2009 13:20
Сокеты Pavelok Работа с сетью в Delphi 3 16.09.2009 16:57
Сокеты IICuX123 Общие вопросы .NET 6 27.07.2009 01:27
Сокеты Raz0r Помощь студентам 2 29.04.2009 14:47
Сокеты ben95 Общие вопросы Delphi 7 09.03.2008 23:26