Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

проблема с сокетами [D7, WinXP]


Страницы:   1 2

Boooze ©   (2008-08-27 23:17:00) 

В общем написал клиен и сервер(чат),переписал точнее с какой то статьи,запускаю сервер ,запускаю клиент ,вбиваю айпи ,порт,нажимаю коннект ,а мне сообщение об ошибке типа:
'' not avaible value.


Boooze   (2008-08-28 16:52:00) [21]

сервер:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ServerSocket1.Port    := 777;  {Указываем порт, который будет слушать сервер}
  ServerSocket1.Active  := True; {Активизируем сервер}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ServerSocket1.Active := False; {Выключаем сервер}
 ServerSocket1.Close; {Закрываем соединение}
 Close; {Завершаем программу}
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
var
 S: String;
 I: Integer;
begin
 {Добавляем к строке сообщения клиента идентификатор его сокета}
 S := InTtoStr(Socket.SocketHandle) + '>' + Socket.ReceiveText;
 ListBox1.Items.Add(S); {Добавляем сообщение в список}
 {Перебираем все установленные соединения}
 For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
    {Проверяем - если идентификатор очередного сокета не совпадает
     с идентификатором сокета, приславшего сообщение, то...}
    if ServerSocket1.Socket.Connections[i].SocketHandle <> Socket.SocketHandle then
      {... посылаем очередной клиентской программе новое сообщение}
      ServerSocket1.Socket.Connections[i].SendText(S);
end;

клиент:
procedure TForm1.Button1Click(Sender: TObject);
{
 Подключение к серверу
}
begin
ClientSocket1.Address := Edit2.Text; {Адрес сервера}
ClientSocket1.Port := StrToInt(Edit3.text); {Порт сервера}
{Если ClientSocket1 не включен, то...}
if not ClientSocket1.Active then  
  ClientSocket1.Active := True; {..включаем его}
end;

procedure TForm1.FormDestroy(Sender: TObject);
{
 Закрытие программы
}
begin
 ClientSocket1.Active := False; {Выключаем клиента}
 ClientSocket1.Close; {Закрываем сокет}
 Close; {Закрываем программу}
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
{
 Обработка данных от сервера
}
begin
 {Добавляем новое сообщение от сервера в список}
 Listbox1.Items.Add(Socket.ReceiveText);
end;

procedure TForm1.Button2Click(Sender: TObject);
{
 Послать сообщение
}
begin
 {Если сообщение не пусто, то...}
 If Edit1.Text <> '' then
   ClientSocket1.Socket.SendText(Edit1.text); {..посылаем его на сервер}
 Edit1.Text := ''; {Очищаем поле ввода}
end;

а насчет проверить через стандартные ,не получиться ,так как делфи у мну "урезанная".


Сергей М.   (2008-08-28 14:57:00) [22]


> пооверить рабюотают ли у меня сокеты вообще вот переписал
> со  статьи что бы убедиться


Если речь идет о TServerSocket/TClientSocket или TTCPServer/TTCPClient, то ты проделал мартышкин труд, переписывая чего-то там с какой-то там статьи - для проверки можно было воспользоваться готовым демо-проектом chat.dpr или netchat.dpr, лежащим прямо перед носом, в папке ($DELPHI\DEMOS\INTERNET)


Slym   (2008-08-28 14:03:00) [23]

Boooze   (28.08.08 13:47) [2]
переписал со  статьи

что за статья, ссылку давай или код "своего" чата... ато телепатор даже на максимальной мощьности не принимает...
Boooze   (28.08.08 13:47) [2]
кто нибудь знает откуда эта ошибка?

думаю при столь скудных исходных данных - никто


Boooze   (2008-08-28 13:47:00) [24]

Да все нрмально переписал ,просто вот писал сам была какая то ошибка ,попробывал ,мб когда сокеты устанавливал что нибудь не так делал?(хотя че там можно не так сдеать?)решил просто пооверить рабюотают ли у меня сокеты вообще вот переписал со  статьи что бы убедиться ,а вот тут не с сокетами а вообще какая то херня ,про переменную какаую то чилового типа .БЛин мб ,кто нибудь знает откуда эта ошибка?


Slym   (2008-08-28 04:46:00) [25]

Boooze   (27.08.08 23:17)
переписал

плохо переписал...
Вот я делаю все как сосед (у него сын), а у меня дочь где я акарал?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо