Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
ВнизWinSock и его функции Найти похожие ветки
← →
Windows © (2007-01-09 20:46) [0]
program WinSock_Client;
{$APPTYPE CONSOLE}
uses
SysUtils,
winsock;
const
cPort = 33;
cSigExit = "q";
var
vWSAData : TWSAData;
vSocket : TSocket;
vSockAddr : TSockAddr;
buf : string;
begin
if WSAStartup($101,vWSAData)<>0 then Halt(1);
vSocket := socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if vSocket = INVALID_SOCKET then Halt(1);
FillChar(vSockAddr,SizeOf(TSockAddr),0);
vSockAddr.sin_family := AF_INET;
vSockAddr.sin_port := htons(cPort);
vSockAddr.sin_addr.S_addr := inet_addr("127.0.0.1");
if connect(vSocket,vSockAddr,SizeOf(TSockAddr)) = SOCKET_ERROR then Halt(1);
repeat
Readln(buf);
if send(vSocket,buf[1],Length(buf),0) = SOCKET_ERROR then Break;
//здесь
until buf = cSigExit;
closesocket(vSocket);
WSACleanup;
end.
даже стыдно спрашивать, тем более, что мне уже вроде как помогали, но так как тему закрыли, видимо ввиду ее исчерпанности, то пришлось создать новую...
но вот там где "//здесь" нужно что-то дописать, что бы коннект определить...
пробовал и WSAGetLastError, и recv, и send, и connect
функция recv\send возвращает WSAENOTCONN, а connect - WSAEISCONN, дак вот не работает...
← →
Windows © (2007-01-10 10:55) [1]неужели никто не знает!?
← →
Сергей М. © (2007-01-10 11:07) [2]
> connect - WSAEISCONN
Судя по твоему коду, если дело дошло до строчки с вызовом send(), то вызов ф-ции connect() никак не мог вернуть SOCKET_ERROR (и уж тем более с кодом отказа WSAEISCONN)
> "//здесь" нужно что-то дописать, что бы коннект определить
Его не надо определять.
Он есть при выполнении условия :
send/recv(...) <> SOCKET_ERROR
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.04 c