ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Особенности WinSock2
  #1  
Старый 29.10.2009, 02:39
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию Особенности WinSock2

Вопрос первый:

Как правильней отправлять текст?

Вариант первый (Код на Delphi):
Код:
function SendText(Sock: TSocket; S: String): Integer;
begin
  Result:=Send(Sock, PChar(S)^, Length(S), 0);
end;



Вариант второй (Код на Delphi):
Код:
function SendText(Sock: TSocket; S: String): Integer;
var
  MainBuff: Array[0..1023] of Char;
  iSize: Integer;
begin
  Result:=0;
  While (Length(S)>0) do
                        begin
                          iSize:=Length(S);
                          if (iSize>SizeOf(MainBuff)) then iSize:=SizeOf(MainBuff);
                          FillChar(MainBuff, SizeOf(MainBuff), 0);
                          CopyMemory(@MainBuff, PChar(S), iSize);
                          Delete(S, 1, iSize);
                          Result:=Result+Send(Sock, MainBuff, iSize, 0);
                        end;
end;


Вопрос второй:

Правильно ли я перевожу в неблокирующий режим?

Фрагмент кока (код на Delphi):

Код:
var
  Sock: TSocket;
  iMode: Cardinal;
....
begin
....

  Sock:=Socket(AF_INET, SOCK_STREAM, 0);
  if (Sock=INVALID_SOCKET) then Raise Exception.Create('Ошибка создания сокета');
  if (Connect(Sock, @SockAddr, Sizeof(SockAddr))=0) then
  begin
    if NoneBlock then
                     begin
                       iMode:=1;
                       IOCtlSocket(Sock, FIONBIO, iMode);
                     end;
...
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
iPhone 3GS: особенности и отличия нового iPhone AquaKlaster Мировые новости 48 06.10.2009 11:31
Инициализация WinSock2 Flenov С/С++, C#, Delphi, .NET, Asm 3 26.05.2009 05:20
Особенности ценовой политики Radeon HD 4770 tinyM Новости мира "железа" 0 28.04.2009 22:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ