![]() |
|
|
|
|
#1
|
|||
|
|||
|
Здраствуйте.Почитал несколько статей по delphi и решали написать чат клиент<>сервер.
Ошибка возникла когда я попытался отправить сообщение серверу. Сервер ничего не выдает когда в клиенте я нажимаю на кнопку отправить.Но соединение он логирует. Вот исходные коды.Может кто подскажет. Сервер PHP код:
Клиент PHP код:
|
|
#2
|
|||
|
|||
|
В сервере исправь свой код:
Код:
procedure TForm1.ServerSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
a: String;
i:=integer;
begin
for i:=0 to serversocket1.Socket.ActiveConnections-1 do
a := 'Клиент ' + InTtoStr(Socket.SocketHandle) + 'написал >' + ServerSocket1.Socket.Connections[i].ReceiveTextt;
ListBox1.Items.Add(a);
end;
end. Вот и всё. Последний раз редактировалось Admin, 11.06.2010 в 20:40. |
|
#3
|
|||
|
|||
|
Неа.Все равно не хочет.
Вот когда нажимаю "Подключиться" он подключается и сервер выдает что такой то такой то подключился, но при наборе текста и при нажатии на кнопку "отправить" сервер не выдает никаких действий |
|
#4
|
|||
|
|||
|
Короче вот мой юин: 477064023 помогу
|
|
#5
|
||||
|
||||
|
Сделал сервер с помощью ServerSocket, на который отправляется текстовая строка вида
Код:
500 12.01 из этой строки мне нужно приравнять IAS = 500 tNext = 12.01 Код:
procedure Tf_main.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
i,text_len, probel :integer;
IAS: real;
text : widestring;
x,y,z,r : double;
X_string,Y_string,Z_string, R_string,tNext,IAS_string: string;
begin
text_len := length(Socket.ReceiveText);//получаем длину всей строки
text := (Socket.ReceiveText); //сама строка
for i := 0 to text_len do
if text[i] = ' ' then probel := i; //ищем где находится пробел
IAS := strtofloat(copy (text,0,probel - 1)); //IAS = всё что до пробела
tNext := (copy (text,probel + 1,text_len)); //tNext = всё что после пробелано при получении строки, вылазит ошибка в строке, выделенную красным. ![]() Если этот же алгоритм прогонять со строкой взятой из Edit`a то всё работает. В чём может быть проблема? Последний раз редактировалось Sevas, 01.09.2010 в 21:55. |
|
#6
|
|||
|
|||
|
Во первых, судя по алгоритму, ты ищешь последний пробел в тексте? Непонятно зачем...
Во вторых, индексация символов в строках начинается с единицы. В третьих, функция Pos() решила бы проблему с поиском пробела, более адекватным способом) |