
31.03.2010, 13:48
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
Сообщение от НTL
Сделал отправку прием UDP но что не работает:
Код:
procedure TForm1.Button1Click(Sender: TObject); //Отправляем текст (здесь все работает все отправляется)
var
ws:TWSAData;
UDP_sock:TSocket;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=inet_addr('127.0.0.1');
if Connect(UDP_sock, sockaddr_in, SizeOf(sockaddr_in))<>0 then
begin
closesocket(UDP_sock);
exit;
end;
send(UDP_sock,s[1],length(Form1.Edit1.text),0);
closesocket(UDP_sock);
end;
procedure TForm1.Button2Click(Sender: TObject); //Открытие сокета на прием
var
ws:TWSAData;
sockaddr_in:TSockAddrIn;
s:string;
begin
WsaStartup($202,ws);
s:=form1.Edit1.Text;
UDP_sock2:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in.sin_family:=AF_INET;
sockaddr_in.sin_port:=htons(8765);
sockaddr_in.sin_addr.s_addr:=INADDR_ANY;
//Сюда надо что то поставить чтобы сокет принимал данные, но что???
form1.Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject); //Прием в memo1
var
tmp_buf:array[0..1024] of char;
begin
form1.Timer1.Enabled:=true;
recv(UDP_sock2,tmp_buf,1024,0);
form1.Memo1.Lines.Add(tmp_buf);
end;
end.
В чем проблема?
за отправку по udp отвечает функция sendto (прием - recvfrom)
|
|
|

31.03.2010, 14:07
|
|
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
С нами:
9626394
Репутация:
357
|
|
А можно описание всех 6 параметров?
|
|
|

31.03.2010, 14:11
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
С нами:
8947056
Репутация:
229
|
|
Сообщение от НTL
А можно описание всех 6 параметров?
каких еще параметров? (конкретнее)
вообщем вбивай в гугл "udp winsock" и будет тебе счастье  (да и кстати, connect тоже вроде не надо делать при udp)
|
|
|

31.03.2010, 16:53
|
|
Познающий
Регистрация: 21.11.2009
Сообщений: 77
С нами:
8668804
Репутация:
29
|
|
Продолжаются вопросы про winapi...
Как выполнить функцию при открытии формы? то есть как в vcl formcreate
|
|
|

31.03.2010, 16:59
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
TrueBit если ты в качестве формы используешь диалог из ресурсов то в функции обработки сообщения надо обработать сообщение WM_INITDIALOG
если окно создаешь сам то сообщение WM_CREATE
http://msdn.microsoft.com/en-us/library/ms632619(VS.85).aspx
Последний раз редактировалось transserg; 31.03.2010 в 17:06..
|
|
|

31.03.2010, 20:43
|
|
Познающий
Регистрация: 26.12.2007
Сообщений: 34
С нами:
9672087
Репутация:
8
|
|
Код HTML:
procedure TForm1.Button1Click(Sender: TObject);
var page:string;
param:tidmultipartformdatastream;
begin
if (Length(Edit1.Text) > 0) and (Length(Edit2.Text) > 0) then
begin
param:=tidmultipartformdatastream.Create;
param.AddFormField('Login',Edit1.Text);
param.AddFormField('Domain','mail.ru');
param.AddFormField('Password',Edit2.Text);
param.AddFormField('page','http://wap.my.mail.ru');
page:=W.Post('http://my.mail.ru/cgi-bin/auth?noclear=1',param)
if pos('Неверное имя пользователя или пароль',page) > 0 then
Statusbar1.Panels[0].Text:='Wrong password!'
else
Statusbar1.Panels[0].Text:='Logged!'
end;
end;
При вводе фейк данных все нормально, в строке состояние пишет "неверное имя...", если же пишу настоящие данные, то тогда выскакует ошибка "Socket error # 11004" :3
|
|
|

31.03.2010, 23:45
|
|
Участник форума
Регистрация: 15.07.2009
Сообщений: 200
С нами:
8854478
Репутация:
2
|
|
По 5956 посту подскажите плиз!
|
|
|

31.03.2010, 23:52
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 278
С нами:
8850305
Репутация:
259
|
|
Сообщение от Qb1024
По 5956 посту подскажите плиз!
на каком языке то хоть?
и уточни задание плиз! например как так при поле 100х100 максимальный квадрат 50? 50 это вообще что такое?
советую ответить как можно скорее))) пока я спать не ушел)
ну ответа так и не дождался... пошел спать... как хочешь
Последний раз редактировалось EndLeSSDre@M; 01.04.2010 в 00:10..
|
|
|

01.04.2010, 16:48
|
|
Познающий
Регистрация: 28.09.2008
Сообщений: 65
С нами:
9273261
Репутация:
8
|
|
Сообщение от EndLeSSDre@M
на каком языке то хоть?
и уточни задание плиз! например как так при поле 100х100 максимальный квадрат 50? 50 это вообще что такое?
советую ответить как можно скорее))) пока я спать не ушел)
ну ответа так и не дождался... пошел спать... как хочешь
1. Тема Delphi/pascal
2. я так понял можно задать матрицу 100x100
при n=3 выстроиться 4 квадрата со сторонами 50x50
ну если на то пошло то 50x50 не будет наибольшим квадратом. 96x96 самый больший из возможных. (для случая n=3),остальные 2 квадрата имеют стороны 2x2
те нахождение максимального квадрата можно свести к 100-n*2
Последний раз редактировалось n1ghtstalker; 01.04.2010 в 16:50..
|
|
|

01.04.2010, 14:59
|
|
Познающий
Регистрация: 05.09.2009
Сообщений: 34
С нами:
8779641
Репутация:
14
|
|
Как реализовать многопоточность на delphi 2010? Там как-то все отличается....
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|