The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"вопрос по Winsock для винды"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"вопрос по Winsock для винды"
Сообщение от maxval emailИскать по авторуВ закладки(ok) on 27-Ноя-04, 16:43  (MSK)
Люди помогите решить вот такую проблему:
написана программа(FreeBSD) которая сидит на порту и ждет соединения. После соединения клиент (из Windows) посылает команду, например shutdown, но на сервер приходит ".shutdown" где точка это служебный символ какой то, естественно сервер на команду не срабатывает и либо виснет, либо совсем не реагирует. Как бы сделать так чтобы строка приходила без служебного символа? Я понимаю вопрос может и глупый, но я уже все перепробовал...

Исходник клиента(Delphi 7):
procedure TForm1.ShutButtonClick(Sender: TObject);
var
cmd: string[9];
i,V:integer;
begin
i:=0;
WSAStartup(MAKEWORD(2,0), initsocket);
addr.sin_family := PF_INET;
addr.sin_addr := lookupname;
addr.sin_port := htons(1500);
soket:=socket(PF_INET,SOCK_STREAM, IPPROTO_IP);
i:=connect(soket,@addr,sizeof(addr));
if i=0 then
  begin
  Application.ProcessMessages;
  cmd:='shutdown';
  send(soket,cmd,9,0);
  closesocket(soket);
  end
  else  ShowMessage('Error.');
end;


  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "вопрос по Winsock для винды"
Сообщение от Quarc Искать по авторуВ закладки on 27-Ноя-04, 21:52  (MSK)
Предпологаю что этот символ обозначает длину строки. Пользуй тип PChar или array[0..8] of byte вместо string
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "вопрос по Winsock для винды"
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 29-Ноя-04, 12:30  (MSK)
>Предпологаю что этот символ обозначает длину строки. Пользуй тип PChar или array[0..8]
>of byte вместо string

Предположение абсолютно верное. В паскале первый байт в строке - это ее длина, а в C/C++ строка NULL-терминированная. Опираясь на это надо придумать алгоритм конвертации ;)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру