ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

29.10.2009, 02:39
|
|
Участник форума
Регистрация: 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;
...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|