Вконтакте - популярное приложение на Андроид для общения в самой популярной социальной сети России. Благодаря ему вы получите возможность обмениваться сообщениями, выкладывать фотографии, аудио и видео, прослушивать любимые музыкальные композиции, следить за новостями на стене друзей и вступать в сообщества.

У нас вы можете скачать Вконтакте для Андроид, установить его на свое устройство и всегда находиться в режиме онлайн, имея полный доступ ко всем основным функциям социальной сети.

Особенности

  • Управление основными функциями Вконтакте.
  • Удобный обмен личными сообщениями с другими пользователями соцсети.
  • Организация группового чата.
  • Просмотр профилей других пользователей.
  • Публикация в сети картинок, фотографий, музыки и видеороликов.
  • Синхронизация адресной книги мобильного устройства с аккаунтом пользователя.
  • Удобный доступ к записям на стене, их чтение, создание и изменение.
  • Прослушивание музыкальных композиций и просмотр видео.
  • Возможность отслеживания, поиска и фильтрации новостей.
  • Поиск новых сообществ и проведение в них обсуждений.
  • Получение уведомлений о заявках в друзья, приближающихся днях рождения и прочих событиях.

С помощью приложения Вконтакте на Андроид вы можете управлять настройками приватности, блокировать нежелательные контакты. Программой поддерживается геотаргетинг, работа с сервисом «Мои закладки», добавление аудиостатусов, прикрепление к сообщениям текстовых и мультимедийных вложений. Для более удобного использования программы в ней предусмотрен виджет для рабочего стола, обеспечивающий доступ к основному функционалу.

ВКонтакте популярная социальная сеть, которая объединила множество людей. Много людей заходят в нее с обычного компьютера, но можно также скачать ВКонтакте бесплатно и установить программу на телефон. Специально разработанная версия программы позволяет пользоваться полным функционалом социальной сети: общаться с друзьями и знакомыми, просматривать фотографии и видео, слушать музыку с вашего телефона.

Установка программы на телефон, которые работают под операционной системой Android не вызовет никаких сложностей. Достаточно скачать ВКонтакте с официальной страницы PlayMarket или с нашего сайта (ссылка расположена внизу страницы) и запустить APK-файл.

Функциональность программы ВКонтакте на телефоне позволяет:

  • Вести удобную личную переписку с друзьями используя с возможностью вставки смайликов и стикеров.
  • Добавлять на свою страницу фотографии, понравившееся видео, а также публиковать плейлисты музыкальных композиций.
  • Программа предоставляет несколько удобных виджетов для рабочего стола телефона.
  • Удобный просмотр личных страниц ВКонтакте других пользователей.
  • Полная синхронизация списка всех контактов и сообщений.

Теперь всегда можно быть в курсе событий и новостей друзей, которые они выкладывают у себя на личных страницах. Делиться понравившимися записями и добавлять фотографии и музыку на свою личную страницу. Но главное это, конечно же, возможность общаться с друзьями в чате. Раздел «личные сообщения» компактно выглядит на экране телефона, удобно набирать текст и читать текстовые сообщения.

Дополнительным плюсом программы ВКонтакте для телефона – установка дополнительных виджетов для рабочего стола. С помощью их можно получить быстрый доступ к вашим музыкальным композициям в ВК или просматривать новости различных групп.

Еще одной особенностью программы ВКонтакте моя страница открывается сразу при запуске приложения. Можно настроить автоматический вход в социальную сеть, не нужно каждый раз вводить логин и пароль.

Если вы обладаете смартфоном и зарегистрированы в этой социальной сети, рекомендуем Вам скачать ВКонтакте и установить ее на свой телефон!


Думаю вам не раз приходила идея создать свой (корпоративный) чат. Такая же идея пришла и мне, и я как всегда начал искать информацию в сети интернет, но таки ни чего хорошего и не нашел. Все как то не полно описывает как это можно сделать.

И я себе обещал, как изучу так выложу полную информацию по этой теме. Я делал свой чат на сокетах. По ним можно общаться, как по сети интернет, так и по локальной сети. Для этого вам достаточно знать Ip адрес. Программировал на Delphi7.

Установка необходимых компонентов

Так как я делал на delphi7, там не было по умолчанию тех компонентов, которые мне нужны. (ServerSocket1 , ClientSocket1 ).
Для этого нужно добавить компоненты Сокета.

В меню заходим Component --> Install Packages…--> Add --> dclsockets70.bpl

И указываем путь к пакету с компонентами, он находиться в корневом папке Delphi в паке Bin. У меня он находился в:

C:\Program Files\Borland\Delphi7\Bin\ dclsockets70.bpl

После такого добавления у вас в вкладке Internet должны появиться данные компоненты.

Размещение компонентов и написание кода

На форму я кинул такие элементы: ServerSocket1, ClientSocket1, Edit1 (для чата), Edit2 (для IP адреса сервера), Memo1 для отображения сообщения, ну и 3 кнопки.

Для создания Сервера пишем на событие в кнопке вот такую вещь:

function GetLocalIP: String ;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array of Char;
begin
Result:= "";
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P:= GetHostByName(@Buf);
if P <> nil then
Result:= iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end ;
WSACleanup;
end ;
end ;

procedure TForm1.Button3Click(Sender: TObject);
begin
ServerSocket1.Port:=65000; // Порт вашего сервера, задаем любой какой вам понравиться
ServerSocket1.Active:=True; // активируем сервер
ServerSocket1.Open; //запускаем
ShowMessage("Ваш IP: "+GetLocalIP); //выдаем наш IP адрес, чтоб клиент смог к нам подключиться
end ;

После того как сервер был включен, клиент сможет подключиться к серверу.
Для этого он прописывает IP адрес сервера в Edit2, И нажимает кнопку соединиться:

procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Address:=Edit2.Text; // IP адрес сервера
ClientSocket1.Port:=65000; //его порт
ClientSocket1.Active:=True; //активируем клиента
ClientSocket1.Open; //запускаем
end ;

Внимание : Клиент может только отправлять сообщение, а Сервер в свою очередь – принимать. Для двустороннего общения включите Клиента и Сервера на двух программах разного конца сети.

Для чтения сообщения, у сервера есть ожидание приема сообщения…вот она

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.add(Socket.RemoteAddress+": ");
memo1.Lines.add(Socket.ReceiveText);
StatusBar1.Panels.Items.Text:=Socket.RemoteAddress;
end ;

Для отправки сообщения я написал в двух процедурах. Вот они:

procedure TForm1.SendMes(Text: String );
begin
if form1.ServerSocket1.Active then
if form1.ServerSocket1.Socket.ActiveConnections>0 then
form1.ServerSocket1.Socket.Connections.SendText(Text);

if form1.ClientSocket1.Active then
form1.ClientSocket1.Socket.SendText(Text);
end ; procedure TForm1.Button1Click(Sender: TObject);
begin
SendMes(Edit1.Text);
memo1.Lines.add(GetLocalIP+": ");
memo1.Lines.add(Edit1.Text);
end ;

... {Здесь определение формы TForm1} var Form1: TForm1; nickname: string; {Ник (псевдоним)} implementation uses conn; {Юнит с диалогом установки соединения} {$R *.DFM} procedure TForm1.Button2Click(Sender: TObject); var do_connect: Boolean; host,port: string; begin {Показываем окно установки соединения с сервером} Form2:= TForm2.Create(Application); {do_connect = True, если была нажата кнопка Connect} do_connect:= (Form2.ShowModal = mrOk); {заполнение переменных до того, как мы уничтожим форму} host:= Form2.Edit1.Text; port:= Form2.Edit2.Text; nickname:= Form2.Edit3.Text; {Уничтожаем форму} Form2.Free; {Если была нажата кнопка Cancel, то уходим отсюда} if not do_connect then Exit; {Если соединение уже установлено, то обрываем его} if ClientSocket1.Active then ClientSocket1.Close; {Устанавливаем свойства Host и Port} ClientSocket1.Host:= host; ClientSocket1.Port:= StrToInt(port); {Пытаемся соединиться} ClientSocket1.Open; end; procedure TForm1.Button3Click(Sender: TObject); begin {Закрываем соединение (если оно установлено)} if ClientSocket1.Active then ClientSocket1.Close; end; procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin {Если произошла ошибка, выводим ее код в Memo1} {Insert вставляет строку в указанную позицию (в данном случае - 0 - в начало)} Memo1.Lines.Insert(0,"Socket error ("+IntToStr(ErrorCode)+")"); end; procedure TForm1.ClientSocket1Lookup(Sender: TObject; Socket: TCustomWinSocket); begin {Сообщаем о том, что идет поиск хоста} Memo1.Lines.Insert(0,"Looking up for server..."); end; procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket); begin {соединяемся...} Memo1.Lines.Insert(0,"connecting..."); end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin {соединились!} Memo1.Lines.Insert(0,"connected!"); end; procedure TForm1.ClientSocket1Disconnect(Sender: TObject; Socket: TCustomWinSocket); begin {отсоединились:(} Memo1.Lines.Insert(0,"disconnected"); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var s,from_,to_: string; begin {присваиваем s полученную от сервера строку} s:= Socket.ReceiveText; {Если сервер посылает нам User List} if Copy(s,1,2) = "#U" then begin Delete(s,1,2); {Чистим ListBox1} ListBox1.Items.Clear; {Добавляем по одному юзеру в список. Имена юзеров разделены знаком ";"} while Pos(";",s) > 0 do begin ListBox1.Items.Add(Copy(s,1,Pos(";",s)-1)); Delete(s,1,Pos(";",s)); end; Exit; end; {Если нам прислали общее сообщение (видимое для всех юзеров)} if Copy(s,1,2) = "#M" then begin Delete(s,1,2); {Добавляем его в Memo1} Memo1.Lines.Insert(0,Copy(s,1,Pos(";",s)-1)+"> "+ Copy(s,Pos(";",s)+1,Length(s)-Pos(";",s))); Exit; end; {Если нам прислали запрос на наше имя юзера} if Copy(s,1,2) = "#N" then begin {Посылаем ответ} Socket.SendText("#N"+nickname); Exit; end; {Если нам прислали приватное сообщение (или не нам:))} if Copy(s,1,2) = "#P" then begin Delete(s,1,2); {Выделяем в to_ - кому оно предназначено} to_ := Copy(s,1,Pos(";",s)-1); Delete(s,1,Pos(";",s)); {Выделяем в from_ - кем отправлено} from_ := Copy(s,1,Pos(";",s)-1); Delete(s,1,Pos(";",s)); {Если оно для нас, или написано нами - добавляем в Memo1 (иногда полезно убрать этот оператор if:))} if (to_ = nickname)or(from_ = nickname) then Memo1.Lines.Insert(0,from_+" (private) > "+s); Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); var s: string; begin {Если мы хотим послать приватное сообщение, но не выбрали адресата - нас покарают замечанием:) и выгонят из обработчика} if (CheckBox1.Checked)and(ListBox1.ItemIndex {Если это приватное сообщение} if CheckBox1.Checked then s:= "#P"+ListBox1.Items+";" {добавляем спец.команду и адресат} else {А если не очень приватное?} s:= "#M"; {Просто спец.команду} {Добавляем наше имя (от кого) и само сообщение} s:= s+nickname+";"+Edit1.Text; {Посылаем все это добро по сокету} ClientSocket1.Socket.SendText(s); {И снова ждем ввода в уже чистом TEdit-е} Edit1.Text:= ""; ActiveControl:= Edit1; end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin {Если была нажата Enter (для тех, кто с мышами не дружит) - тоже не отказываемся послать сообщение} if Key = VK_RETURN then Button1.Click; end;

В данной статье я расскажу, как написать простой чат структуры Head-to-Head, то есть соединение клиент-сервер с одним каналом связи.

Сперва создадим сервер. Создаём новый проект, Caption формы меняем на "Server". Добавляем на форму TSpinEdit (находится на вкладке "Samples", его лучше разместить где-нибудь вверху. Будет служить для указывания порта для коннекта клиента), TServerSocket (на вкладке "Internet", если этого компонента там не видно - выбираем Component -> Install packages, жмём кнопку Add и выбираем в диалоге в директории bin файл dclsockets70.bpl, и нажимаем Ok. Компоненты TClientSocket и TServerSocket должны появиться на вкладке "Internet"), TMemo (в нём будут отображаться сообщения, 2 TButton"а (один будет создавать сервер, другой - разрывать связь) и TEdit для отправки сообщений. Установите ServerType в StNonBlocking у TServerSocket"а.
Изменяем первому TButton"у Caption на "Активировать серв.". Пишем этой кнопке в обработчик OnClick:

procedure
begin

ServerSocket1.Port:=SpinEdit1.Value; // указываем порт
ServerSocket1.Active:=True; // активируем наш сервер
end;

Обработчик OnClick для кнопки, разрывающей коннект:

procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Active:=False; // деактивируем сервер
end ;

Теперь пишем обработчик для TEdit"a OnKeyPress

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var S: string ;
begin
if Key = Chr(13) then // если нажали клавишу Enter...
begin
Key:=Chr(0);
S:=Edit1.Text; // то в строковую переменную записываем текст из TEdit"à...
Edit1.Clear; // очищаем поле
ServerSocket1.Socket.Connections.SendText(S); // и отправляем текст
Memo1.Lines.Add("< "+S);
end ;
end ;

Отправку сообщений сделали, теперь нужно организовать их приём. Для этого пишем обработчик OnClientRead у TServerSocket"а.

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var Received: string ;
begin
Received:=Socket.ReceiveText;
Memo1.Lines.Add("> "+Received);
end ;

Теперь создадим реакцию на отключение клиента

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add("Клиент отсоединился" );
end ;

На этом закончим создание сервера. Сохраните проект и создайте новый.

Соотвественно новой форме изменяем Caption на "Клиент". Где-нибудь вверху формы разместим TEdit (будет для указания адреса сервера), TSpinEdit (будет указывать порт для подключения к серверу) и кнопку TButton, также как и для сервера, добавим TMemo и TEdit для отображения и отправки сообщений, и главный компонент - TClientSocket. Обработчик OnClick для кнопки, которая будет подключать:

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:=Edit1.Text;
ClientSocket1.Port:=SpinEdit1.Value;
ClientSocket1.Open;
end ;

Теперь пишем обработчик OnKeyPress для Edit2:

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var Msg: string ;
begin
if Key = #13 then
begin
Key:=#0;
Msg:=Edit2.Text;
Edit2.Clear;
with ClientSocket1.Socket do SendText(Msg);
Memo1.Lines.Add("< "+Msg);
end ;
end;

Теперь организуем приём сообщений. Для этого пишем обработчик у ClientSocket-а OnRead:

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add("> "+Socket.ReceiveText);
end ;

Собственно наш простейший чат готов. Можете протестировать его с помощью обратной петли: создайте сервер, например, с портом 5000, запустите клиент, укажите ему в поле для адреса сервера localhost (либо 127.0.0.1), порт 5000 и подсоединитесь.