Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
1-1089151257
dido
2004-07-07 02:00
2004.07.18
Edit не принимает цифр


14-1088081541
Kenzoo
2004-06-24 16:52
2004.07.18
Принтер этикеток


1-1089000961
newver
2004-07-05 08:16
2004.07.18
доступ к "изображению".


1-1088895655
CyberSpy
2004-07-04 03:00
2004.07.18
Печать страницы


14-1088102829
Knight
2004-06-24 22:47
2004.07.18
Моторола C350... что, правда, брать не стоит?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский