Форум: "Сети";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
ВнизСтранная ошибка в программе Найти похожие ветки
← →
Malder (2002-01-04 00:55) [0]рофесcионалы, пожалуйста, помогите. Просто нереальная ошибка какая то. На форме ClientSocket1 и ServerSocket1. Вот код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var i:integer;
dop:array of char;
begin
i:=socket.ReceiveLength ;
setlength(dop,i+1);
socket.ReceiveBuf(dop,i);
clientsocket1.Socket.SendBuf(dop,i); // Здесь ошибка
end;
Выползает на последней строчке EAccessViolation.
Если вместо массива char"ов использовать Pchar :-) и GetMem вместо setlength то все тоже самое. Я просто не знаю, что делать. Перепробовал все.
Протестировать можно, например, задавая ServerSocket1.Port:=80, а ClientSocket по фигу куда коннектить (хоть на microsoft.com ). И как только включишь IE и введешь http://127.0.0.1 то все.. будет данная трабла. Я в шоке :-)
← →
False_Delirium (2002-01-04 05:41) [1]Pointer(dop[1])^ - так попробуй...
← →
YuriBtr (2002-01-04 09:45) [2]Ничего странного .NET
IMHO ServerSocket1ClientRead предназначен для получения данных сервером от клиента. И поэтому мне совсем не понятен смысл процедуры:
clientsocket1.Socket.SendBuf(dop,i); // Здесь ошибка
Зачем???
Ты уже получил данные - они в dop.
Теперь их просто обработай.
Но перед получением сервером данных, ты их должен послать :) через clientsocket1.Socket.SendBuf(dop,i) но это должно быть совсем в другой процедуре. Например при клике на кнопке "послать файл"
← →
Malder (2002-01-04 16:55) [3]Делал я прогу для того, чтобы через нее проходил трафик. То есть чтобы Explorer связывался НЕ с www.ya.ru (например), а сначала с моей прогой, которая уж связывается с удаленной машиной. То есть типа как прокси получается. Ну нужно мне так. Вы лучше обьясните в чем ОШИБКА ??? Это что, глюк DELPHI ?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c