Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2014, 16:31   #1
unreal2x
Пользователь
 
Аватар для unreal2x
 
Регистрация: 22.01.2012
Сообщений: 39
Смущение WinSock / Delphi XE

Добрый день.

Возникла проблемка при отправке и приеме данных... Использую код:

Код:
var
charbuf: array [0..100] of char;
recvbuf: array [0..100] of char;
bytesRecv:integer;
...

MoveMemory(@charbuf,pchar(text),length(text));
send(sHwnd, charbuf, Length(text), 0);

bytesRecv:=recv(sHwnd, recvbuf, length(recvbuf), 0 );

if bytesRecv=SOCKET_ERROR then
  begin
  form1.memo1.lines.add('Receive failed: '+inttostr(WSAGetLastError));
  end
  else
  begin
    if bytesRecv=0 then
    else
     begin
      form1.memo1.lines.add(recvbuf);
     end;
Отправляет почему-то первый символ (хотя задал строку), а принимает вообще китайские иероглифы...

Помогите пожалуйста разобраться.
no sleep.
unreal2x вне форума Ответить с цитированием
Старый 28.05.2014, 16:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Может лучше так?:
Код:
send(sHwnd, @charbuf[0], Length(text), 0);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2014, 16:46   #3
unreal2x
Пользователь
 
Аватар для unreal2x
 
Регистрация: 22.01.2012
Сообщений: 39
По умолчанию

Ругается на E2036 Variable required...

Если
Код:
send(sHwnd, charbuf[1], Length(text), 0);
то, тоже отправляет один только символ. А как сделать чтоб отправляло более одного?
no sleep.

Последний раз редактировалось unreal2x; 28.05.2014 в 16:51.
unreal2x вне форума Ответить с цитированием
Старый 28.05.2014, 16:54   #4
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

А text что за переменная?
Lardes вне форума Ответить с цитированием
Старый 28.05.2014, 16:58   #5
unreal2x
Пользователь
 
Аватар для unreal2x
 
Регистрация: 22.01.2012
Сообщений: 39
По умолчанию

Вылечилась передача...

Код:
procedure SendData(Data: AnsiString);
var
  Len: LongInt;
begin
  Len := Length(Data);
  Send(sHwnd, Data[1], Len, 0);
end;

SendData(form1.memo2.text);
Но осталась проблема с приемом данных... получает весь текст (по кол-ву байтов, но какие то китайские символы)... Как это можно решить?
no sleep.
unreal2x вне форума Ответить с цитированием
Старый 28.05.2014, 17:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Если китайские то возможно придется перекодировать. Может это юникод тебе приходит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinSock в Delphi Рик Общие вопросы Delphi 10 08.02.2011 12:40
WinSock и Delphi 2010 Nicker Работа с сетью в Delphi 0 15.04.2010 21:09
WinSock, UDP, широковещание; delphi (pascal) svchaos Работа с сетью в Delphi 5 02.06.2009 14:44
WinSock, UDP, широковещание: Delphi (Pascal) svchaos Помощь студентам 8 01.06.2009 20:41