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

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

Странная ошибка в программе [D5, Win95/98]


Malder ©   (2002-01-04 00:55:00) 

рофес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то все.. будет данная трабла. Я в шоке :-)


Malder   (2002-01-04 16:55:00) [1]

Делал я прогу для того, чтобы через нее проходил трафик. То есть чтобы Explorer связывался НЕ с www.ya.ru (например), а сначала с моей прогой, которая уж связывается с удаленной машиной. То есть типа как прокси получается. Ну нужно мне так. Вы лучше обьясните в чем ОШИБКА ??? Это что, глюк DELPHI ?


YuriBtr   (2002-01-04 09:45:00) [2]

Ничего странного .NET
IMHO ServerSocket1ClientRead предназначен для получения данных сервером от клиента. И поэтому мне совсем не понятен смысл процедуры:
clientsocket1.Socket.SendBuf(dop,i); // Здесь ошибка
Зачем???
Ты уже получил данные - они в dop.
Теперь их просто обработай.
Но перед получением сервером данных, ты их должен послать :) через clientsocket1.Socket.SendBuf(dop,i) но это должно быть совсем в другой процедуре. Например при клике на кнопке "послать файл"


False_Delirium   (2002-01-04 05:41:00) [3]

Pointer(dop[1])^ - так попробуй...


Наверх

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