Показано с 1 по 7 из 7
  1. #1
    Без позывного
    Регистрация
    30.01.2004
    Возраст
    39
    Сообщений
    27
    Поблагодарили
    0
    Поблагодарил
    0

    Сокеты на делфи

    Использую компонет ClientSocket в Делфи 6

    Создаю и открываю сокет
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ClientSocket1.Host:='www.host.ru';
    ClientSocket1.Port:=80;
    ClientSocket1.Open;
    end;

    Отсылаю запрос на сервер
    procedure TForm1.ClientSocket1Connect(Sender: TObject;
    Socket: TCustomWinSocket);
    begin
    ClientSocket1.Socket.SendText('GET /bla/bla'+#13#10+#13#10)end;

    Читаю с сокета
    procedure TForm1.ClientSocket1Read(Sender: TObject;
    Socket: TCustomWinSocket);
    begin
    Memo1.Text:=Socket.ReceiveText;
    end;


    Выдается сообщение об ошибке 11041ю В чем причина?


  2. #2
    Very High Power Аватар для RK3FW
    Регистрация
    17.08.2002
    Адрес
    ko85mo, RDA MO-56
    Возраст
    59
    Сообщений
    2,983
    Поблагодарили
    396
    Поблагодарил
    158
    Почитай MSDN. Там три раздела по ошибкам. Ищи по коду.

  3. #3
    Very High Power Аватар для RK3FW
    Регистрация
    17.08.2002
    Адрес
    ko85mo, RDA MO-56
    Возраст
    59
    Сообщений
    2,983
    Поблагодарили
    396
    Поблагодарил
    158
    Попалась под руку книжка "Программирование в сетях MS Windows". Там написано: 10041 - Неверный тип протокола для сокета. При вызове socket или WSASocket указан протокол, не поддерживающий семантику данного типа сокета. Например, попытка создать IP-сокет типа SOCK_STREAM с протоколом IPPROTO_UDP.

    Кстати, когда выдается сообщение об ошибке и где - у клиента или сервера?
    С одного и того же сокета слать и посланное на него же принимать нельзя.

    Возьми пример из Дельфей и внимательно изучи!

  4. #4
    Без позывного Аватар для Bioname
    Регистрация
    12.04.2003
    Адрес
    Житомир, Украина
    Возраст
    43
    Сообщений
    655
    Поблагодарили
    12
    Поблагодарил
    1
    if ( IdTCPClient1.Connected ) then IdTCPClient1.Disconnect();
    IdTCPClient1.Port := 80;
    IdTCPClient1.Host := 'cs';
    IdTCPClient1.Connect( );

    IdTCPClient1.WriteLn( 'GET /~bioname/upload/index.php'+#13#10 );

    memo1.Lines.Add( IdTCPClient1.CurrentReadBuffer( ) );
    if ( IdTCPClient1.Connected ) then IdTCPClient1.Disconnect();

    ответ:
    <html>
    <head>
    <title>Upload File For Bioname</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <center>
    <h4>Upload File:</h4>
    <form action="upload.php" method="post" enctype="multipart/form-data">
    <table border="0" width="50%">
    <tr bgcolor="#e1e1e1" width="100%">
    <td colspan="2" align="center" valign="center"><b><h3>Upload File To Server</h3><b></td>
    </tr><tr><td>&nbsp;</td></tr>
    <tr>
    <td align="right" width="50%"><b>&nbsp;User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td align="left" width="50%"><input type="text" name="user"></td>
    </tr>
    <tr>
    <td align="right" width="50%"><b>&nbsp;Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td align="left" width="50%"><input type="password" name="pswd"></td>
    </tr>
    <tr>
    <td align="right" width="50%"><b>&nbsp;File Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td align="left" width="50%"><input type="file" name="filename"></td>
    </tr>
    <tr>
    </tr><tr><td>&nbsp;</td></tr>
    <td align="center" width="100%" colspan="2"><font color="black"><input type="submit" name="Send" value="Upload Now !"></h3></font></td>
    </tr>
    </table></form>
    </body>
    </html>

    собсно, думаю понятно что к чему....

  5. #5
    Very High Power Аватар для RK3FW
    Регистрация
    17.08.2002
    Адрес
    ko85mo, RDA MO-56
    Возраст
    59
    Сообщений
    2,983
    Поблагодарили
    396
    Поблагодарил
    158
    Вообще-то TClientSocket поддерживает соединение с TServerSocket, а не с TClientSocket.
    Кстати, что-то не понятно с ответом или в форуме глюк какой.

  6. #6
    Без позывного Аватар для Bioname
    Регистрация
    12.04.2003
    Адрес
    Житомир, Украина
    Возраст
    43
    Сообщений
    655
    Поблагодарили
    12
    Поблагодарил
    1
    Полюбому клиент к клиенту не законнектится. прикол же в том что сервер делает всё время "listen" (или bind - кому как больше нравится) и ждёт входящих соединений, а клиент так не умеет. (конечно если для сокета не делать бинд - тогда это "будет" сервер)

  7. #7
    Very High Power Аватар для RK3FW
    Регистрация
    17.08.2002
    Адрес
    ko85mo, RDA MO-56
    Возраст
    59
    Сообщений
    2,983
    Поблагодарили
    396
    Поблагодарил
    158
    Так и я о том же.

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×
Рейтинг@Mail.ru
eXTReMe Tracker


Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×