Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

Проблема SendText в ServerSocket   Найти похожие ветки 

 
Radgar ©   (2005-03-19 09:57) [0]

Мне нужно отсылать сообщения с ClientSocket для ServerSocket, а сервер должен отправлять ответ, причем клиентов может быть много.
Проблема в том, что когда клиент отправляет сообщение первый раз сервер отвечает, а второй раз - нет. Подскажите пожалуйста что делать.

для сервера
______________________________________________________________

procedure TForm1.FormCreate(Sender: TObject);
begin
Serversocket1.Active:=true;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);

var  i, LocalAdress:integer;
    LocalHost:string;
begin
For i:=0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
 LocalHost:=ServerSocket1.Socket.Connections[i].LocalHost;
 LocalAddress:=ServerSocket1.Socket.Connections[i].LocalAddress;
 If (LocalHost=socket.RemoteHost)and  
  LocalAddress=socket.RemoteAddress) then
   begin
     ServerSocket1.Socket.Connections[i].SendText("1");
   end;
end;
end;

____________________________________________________________
а теперь для клиента
____________________________________________________________

procedure TForm1.FormCreate(Sender: TObject);
begin
clientsocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Button1.Enabled:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Socket.SendText("1");
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Showmessage("1");
end;
_______________________________________________________


 
Verg ©   (2005-03-19 10:13) [1]

В событиях OnRead надо обязательно считывать данные из сокета. Иначе это будет последний OnRead в жизни этого сокета :)


 
Змей ©   (2005-03-19 20:16) [2]

у меня было такое изза файрвола или касперский антихакер бывают глюки т.е. когда выключаешь все что может перекрыть все работает
ну у меня в чате иногда не все пролетало! пару мессаг да улетит в воздух:)


 
redlord   (2005-03-20 01:19) [3]

[1]


 
Змей ©   (2005-03-20 01:58) [4]

ой да кстати :) нужно procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var s:string;

begin
s:=recievetext;

Showmessage(s);
end;
вот должно



Страницы: 1 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
3-1114676618
ST
2005-04-28 12:23
2005.06.06
INSERT в MSSQL


4-1113389095
psa247
2005-04-13 14:44
2005.06.06
ShFileOperation


3-1115128555
Taurus
2005-05-03 17:55
2005.06.06
Определение объекта на форме


1-1116480020
Аноним
2005-05-19 09:20
2005.06.06
Всем Как в консолном приложении вернуть Error level для обработки


14-1116506622
Layner
2005-05-19 16:43
2005.06.06
Здравствуйте. Подсобите расшифровать метод запаковки 3х чисел...