Форум: "Сети";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизПроблема 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c