Форум: "Сети";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизВопрос по сокетам Найти похожие ветки
← →
osama (2004-05-14 17:53) [0]Подскажите, что тут не правильно?
var
S: TSocket;
Return: Longword;
Addr: TSockAddrIn;
function SendMessage(S: TSocket; var Buf; Count: Integer): Longword;
begin
WinSock.Send(S, Buf, Count, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
S:=WinSock.Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
Addr.sin_family:=PF_INET;
Addr.sin_addr.S_addr:=inet_addr(PChar("127.0.0.1"));
Addr.sin_port:=htons(1024);
Return:=WinSock.Connect(S, Addr, SizeOf(Addr));
Return:=SendMessage(S, Pointer(PChar("000000"))^, 6);
end;
← →
osama (2004-05-14 17:59) [1]Сообщение должна ловить другая прога - Делфийский Chat (стандарт :). Адрес свой но это не принципиально - на другом айпи тоже не ловит. Что я забыл???
← →
Evgeny V © (2004-05-15 06:50) [2]забыл проверить на ошибки, которые возвращают функции и узнать их причину. И еще не вижу WSAStartup ( может ты и делал, но на всякий случай напоминаю) и Addr.sin_family:=PF_INET наверное описка, должно быть AF_INET
← →
kalishenko (2004-05-20 13:44) [3]И я тоже проверил этот код, и у меня выдается ошибка WSAECONNREFUSED при попытке соединиться, т.е. после вызова connect. В хэлпе написано, что просто попытка соединиться была отклонена. В чем подвох?
Да, привожу немного перереланный код:
var
WSData: WSAData;
err_sock: integer;
S: TSocket;
Return: Longword;
Addr: TSockAddrIn;
procedure TForm1.Button1Click(Sender: TObject);
begin
err_sock := WSAStartup(MAKEWORD(1,1),WSData);
if err_sock <> 0 then
begin
MessageBox(0,"Ошибка в ф-ции WSASturtup!","Ошибка!",MB_OK);
Halt;
end
else
begin
S:=Socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if S <> INVALID_SOCKET then
begin
Addr.sin_family:=AF_INET;
Addr.sin_addr.S_addr:=inet_addr(PChar("127.0.0.1"));
Addr.sin_port:=htons(1024);
Return:=Connect(S, Addr, SizeOf(Addr));
if Return <> 0 then
begin
MessageBox(0,"Ошибка в ф-ции Connect!","Ошибка!",MB_OK);
return := WSAGetLastError;
end;
end
else MessageBox(0,"Ошибка в ф-ции Socket!","Ошибка!",MB_OK);
end;
WSACleanup;
end;
P.S.: На счет MessageBox-ов - просто для отладки.
← →
Verg © (2004-05-20 15:12) [4]Значит 1024-й порт никто не слушает (нет сервера на 1024)
← →
Rouse_ © (2004-05-20 21:27) [5]> [2] Evgeny V © (15.05.04 06:50)
Смешно...
{$EXTERNALSYM PF_INET}
PF_INET = AF_INET;
> [3] kalishenko (20.05.04 13:44)
нормально работает, только что проверил...
← →
kalishenko (2004-05-21 13:40) [6]>>Rouse_
Да, точно. Просто у меня ни одной службы на этом порту не было запущено.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c