டெல்பி பயன்பாடு POST முறையைப் பயன்படுத்தி சேவையகத்திற்கு தரவை அனுப்புகிறது (Indy). டெல்பியில் பயன்படுத்தப்படும் இண்டி கூறுகள்

Indy என்பது பல்வேறு நெட்வொர்க் பயன்பாடுகளை உருவாக்க உங்களை அனுமதிக்கும் கூறுகளின் மிகவும் சக்திவாய்ந்த தொகுப்பாகும். இந்த டுடோரியலில் TIdTCPClient மற்றும் TIdTCPSserver கூறுகளைப் பயன்படுத்தி கிளையன்ட்-சர்வர் அப்ளிகேஷன்களை எவ்வாறு உருவாக்கலாம் என்பதை நான் உங்களுக்கு சொல்கிறேன்.

முதலில், இந்த கூறுகளின் இரண்டு முக்கிய நன்மைகளை நான் கவனிக்க விரும்புகிறேன். அவற்றில் மிக முக்கியமானது மல்டித்ரெடிங் ஆகும், அதாவது சர்வர் ஒவ்வொரு கிளையண்டிற்கும் ஒரு தனி நூலை உருவாக்குகிறது, மேலும் இது மல்டி-கோர் செயலி கொண்ட கணினிகளில் சேவையக நிரலின் செயல்திறனை நிச்சயமாக பாதிக்கிறது. இரண்டாவது நன்மை பயன்பாட்டின் எளிமை. ஒரு எளிய கிளையன்ட்-சர்வர் பயன்பாட்டை எழுத 10-20 கோடுகள் போதுமானது. இந்த கூறுகளின் தொகுப்பு நிலையான டெல்பி கூட்டங்களில் உள்ளது.

எழுதுவோம் ஒரு எளிய நிரல், இது ஒரு கிளையண்டிலிருந்து ஒரு சேவையகத்திற்கு உரைச் செய்தியை மாற்ற உங்களை அனுமதிக்கிறது. சேவையகத்தை உருவாக்க ஆரம்பிக்கலாம்.
படிவத்தில் உள்ள “Indy Servers” தாவலில் இருந்து IdTCPSserver கூறுகளை வைப்போம். படிவத்தின் OnCreate நிகழ்வில் இயங்கும் நேரத்தில் இந்தக் கூறுக்கான அனைத்து அமைப்புகளையும் உருவாக்குவோம்:
IdTCPSserver1.DefaultPort:= 12345;
IdTCPSserver1.செயலில்:= உண்மை;
இங்கே எல்லாம் எளிது - சேவையகம் செயல்படும் போர்ட்டை நாங்கள் குறிப்பிடுகிறோம், மேலும் சேவையகத்தை செயல்படுத்துகிறோம்.

கிளையண்டிலிருந்து சேவையகத்தில் தரவைப் பெற, ஒரு சிறப்பு நிகழ்வு "OnExecute" உள்ளது. இந்த நிகழ்வு இதுபோல் தெரிகிறது:

தொடங்கும்
முடிவு;

நிகழ்வின் உள்ளடக்கத்தை பின்வருமாறு திருத்துவோம்:
செயல்முறை TForm3.IdTCPServer1Execute(ACcontext: TIdContext);
var
எல்:சரம்; // சரம் மாறி அதில் நாம் பெறுவோம்
தொடங்கும்
l:= ACcontext.Connection.IOHandler.ReadLn();
Memo1.Lines.Add(l);
முடிவு;

இப்போது, ​​சர்வரில் ஒரு செய்தி வந்தவுடன், அதை ஸ்ட்ரிங் மாறி l இல் எழுதி, அதை பல வரி உரை புலத்தில் வெளியிடுவோம்.

இது, சர்வரின் உருவாக்கத்தை முடிப்பதில் ஆச்சரியமில்லை. மீதியை எங்களுக்காக இண்டி செய்யும். கிளையன்ட் திட்டத்துடன் ஆரம்பிக்கலாம். இது சேவையகத்துடன் இணைக்கப்பட்டு, அதற்கு ஒரு செய்தியை அனுப்பும் மற்றும் சேவையகத்திலிருந்து துண்டிக்கப்படும்.

உருவாக்குவோம் புதிய திட்டம், IdTCPClient கூறுகளை படிவத்தில் வைக்கவும், அதை "Indy Clients" தாவலில் காணலாம். நாங்கள் ஒரு எளிய திருத்தம் மற்றும் ஒரு பொத்தானை வைப்போம். பொத்தானுக்கு OnClick நிகழ்வு ஹேண்ட்லரை உருவாக்குவோம், அதன் உள்ளே நாம் எழுதுவோம்:
IdTCPClient1.Port:= 12345;
IdTCPClient1.Host:= '127.0.0.1';
IdTCPClient1.Connect;
IdTCPClient1.IOHandler.WriteLn(Edit1.Text);
IdTCPClient1.Disconnect;

இந்தக் குறியீட்டை OnCreate நிகழ்வில் வைக்க வேண்டிய அவசியமில்லை. நீங்கள் விரும்பினால் இந்தக் குறியீட்டை எங்கு வேண்டுமானாலும் வைக்கலாம்.
முதல் வரியில் நாங்கள் ஒரு போர்ட்டை ஒதுக்குகிறோம், மேலும் சேவையக நிரலில் நாங்கள் குறிப்பிட்ட அதே போர்ட்டைக் குறிப்பிடுவது அவசியம், இல்லையெனில் கிளையன்ட் சர்வரைக் கண்டுபிடிக்க முடியாது. பின்னர் சேவையகத்தின் ஐபி முகவரியைக் குறிப்பிடுகிறோம். சேவையகத்தை எந்த இடத்திலும் அமைக்கலாம் உள்ளூர் நெட்வொர்க், மற்றும் தொலைதூரத்தில். பிந்தைய வழக்கில், இணையம் வழியாக இணைப்பு செய்யப்படும் மற்றும் நீங்கள் இணையத்தில் ஒரு ஐபி முகவரியைக் குறிப்பிட வேண்டும்.

நான் "127.0.0.1" என்ற முகவரியைக் குறிப்பிட்டேன், அதாவது சேவையகம் என்பது கிளையன்ட் இயங்கும் கணினி. நெட்வொர்க் பயன்பாடுகளை சோதிக்க இந்த முறை மிகவும் வசதியானது.
பிறகு நாம் ஒரு இணைப்பை உருவாக்கி, ஒரு செய்தியை அனுப்புகிறோம் மற்றும் துண்டிக்கிறோம். செய்தியைப் போலவே, நீங்கள் ஐபி முகவரியைத் திருத்தம் அல்லது எந்த சரம் மாறியிலிருந்தும் எடுக்கலாம்.

கிளையன்ட் திட்டத்தின் வேலையும் முடிந்தது. நீங்கள் பார்க்க முடியும் என, இண்டி எங்களுக்காக ஒரு மகத்தான வேலையைச் செய்கிறது, இது ஒரு அனுபவமற்ற புரோகிராமர் கூட தங்கள் சொந்த நெட்வொர்க் பயன்பாட்டை உருவாக்குவதை சாத்தியமாக்குகிறது.

UDP நெறிமுறை பரிமாற்றத்திற்கு மிகவும் நல்லது உரை செய்திகள், அதாவது, நீங்கள் உள்ளூர் அரட்டைகள் மற்றும் பலவற்றை ஒழுங்கமைக்கலாம். டெல்பியில் UDP உடன் எளிமையான வேலைக்கான உதாரணம் கொடுக்க முடிவு செய்தேன்.

படிப்படியான அறிவுறுத்தல்:

நான் ஒரு உதாரணம் கொடுத்தேன், ஆனால் என்னை மன்னியுங்கள், நான் ஒவ்வொரு வரியையும் எழுதவில்லை, ஏனென்றால் ... நான் சிக்கலான எதையும் பார்க்கவில்லை, யாராலும் கண்டுபிடிக்க முடியும்.

உண்மையில், ஏதாவது தெளிவாக தெரியவில்லை என்றால், நீங்கள் என்னிடம் ஒரு கேள்வி கேட்கலாம். இங்கே உண்மையான குறியீடு:

பயன்கள்
விண்டோஸ், செய்திகள், SysUtils, மாறுபாடுகள், வகுப்புகள், கிராபிக்ஸ், கட்டுப்பாடுகள், படிவங்கள்,
உரையாடல்கள், StdCtrls, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, IdSocketHandle;

வகை
TForm1 = வகுப்பு(TForm)
IdUDPClient1: TIdUDPClient;
IdUDPServer1: TIdUDPSserver;
பட்டன்1: TButton;
Label1: TLabel;
செயல்முறை FormCreate (அனுப்புபவர்: TObject);
செயல்முறை படிவம் (அனுப்புபவர்: TObject; var நடவடிக்கை: TCLoseAction);
செயல்முறை பட்டன்1 கிளிக் (அனுப்புபவர்: TObject);
செயல்முறை IdUDPServer1UDPRead(Athread: TIdUDPListenerThread; AData: TBytes;
இணைத்தல்: TIdSocketHandle);
தனிப்பட்ட
(தனிப்பட்ட அறிவிப்புகள்)
பொது
(பொது அறிவிப்புகள்)
முடிவு;

var
படிவம்1: TForm1;

($R *.dfm)
[b]//ஒரு செய்தியை அனுப்புவதற்கான நடைமுறை
செயல்முறை TForm1.Button1Click(அனுப்புபவர்: TObject);
தொடங்கும்
முயற்சி
IdUDPClient1. செயலில்:= உண்மை;
IdUDPClient1.Host:= "localhost";
IdUDPClient1.Connect;
IdUDPClient1. இணைக்கப்பட்டிருந்தால்
தொடங்கும்
IdUDPClient1.Send(TimeToStr(நேரம்));
லேபிள்1.தலைப்பு:= "சரி";
முடிவு;
IdUDPClient1. செயலில்:= தவறு;
பீப்;பீப்;பீப்;
தவிர
MessageDlg("ஏதோ தவறாகிவிட்டது =(", mtError, , 0);
முடிவு;
முடிவு;
[b]
//ஆன் ஆஃப். படிவத்தைத் தொடங்கி மூடும் போது UDP சேவையகம்
செயல்முறை TForm1.FormClose(அனுப்புபவர்: TObject; var செயல்: TCLoseAction);
தொடங்கும்
IdUDPServer1.செயலில்:= தவறு;
முடிவு;

செயல்முறை TForm1.FormCreate(அனுப்புபவர்: TObject);
தொடங்கும்
IdUDPServer1.செயலில்:= உண்மை;
முடிவு;

[b]//தரவைப் பெறும்போது சேவையக எதிர்வினை செயல்முறை
செயல்முறை TForm1.IdUDPServer1UDPRead(Athread: TIdUDPListenerThread;
AData: TBytes; இணைத்தல்: TIdSocketHandle);
வர்
நான்: முழு எண்;
s:சரம்;
தொடங்கும்
s:= "";
முயற்சி
நான்:= 0;
போது (AData[i] 0) செய்ய
தொடங்கும்
s:= s + chr(AData[i]);
நான்:= நான் + 1;
முடிவு;
இறுதியாக
லேபிள்1.தலைப்பு:= கள்;
முடிவு;
முடிவு;

செர்ஜ் டோஸ்யுகோவ் மைக் பாம்

Indy kit மற்றும் Delphi 7 ஐப் பயன்படுத்தி ஒரு தனித்தனி வலைச் சேவையை எவ்வாறு உருவாக்குவது மற்றும் Delphi 7 SOAP-அடிப்படையிலான இணையச் சேவைகளை ஆதரிக்க Indy kit ஐ எவ்வாறு பயன்படுத்துவது என்பதை இந்தக் கட்டுரை உங்களுக்குக் காட்டுகிறது. பின்னால் கூடுதல் தகவல்வலை சேவைகளை உருவாக்குவது பற்றிய தகவலுக்கு, போர்லாண்ட் சமூக தளத்தில் நிக் ஹோட்ஜஸின் சிறந்த கட்டுரையைப் பார்க்கவும்: வலையில் ஷேக்ஸ்பியர்.

விரைவில் அல்லது பின்னர், நீங்கள் ஒரு முழுமையான HTTP சேவையகமான மற்றும் இணைய சேவைகளை ஆதரிக்கும் சேவையகத்தை உருவாக்க வேண்டியிருக்கும். எடுத்துக்காட்டாக, டெல்பியைப் பயன்படுத்தி உருவாக்கப்பட்ட என்-அடுக்கு பயன்பாட்டிற்கான SOAP அடிப்படையிலான பயன்பாட்டு சேவையகத்தை நீங்கள் உருவாக்க விரும்பலாம்.

அறிமுகம்

டெல்பியின் ஆன்லைன் உதவி சிறப்பானது தொடர் அறிவுறுத்தல் MIDAS சர்வர் (COM, DCOM மாதிரி) ஒரு வலை சேவையை எவ்வாறு உருவாக்குவது என்பது பற்றி, ஆனால் SOAP நெறிமுறையின் அடிப்படையில் ஒரு தனித்த n-tier MIDAS பயன்பாட்டை உருவாக்குவது பற்றி நடைமுறையில் எந்த தகவலும் இல்லை.

முன்பு டேவ் நோட்டேஜ் வெளியிட்டது. SOAP ஆதரவுடன் Delphi 6 இல் இணைய சேவையை எவ்வாறு உருவாக்குவது மற்றும் Datamodule இன் SOAP இடைமுகங்களை வெளியிடும் திறனைப் பற்றிய யோசனையை இந்தக் கட்டுரை விவரித்தது. MIDAS அமைப்புகள்.

Borland's Delphi 7 மற்றும் புதிய Indy kit ஆகியவை இந்த செயல்பாட்டிற்கு உள்ளமைந்த ஆதரவைக் கொண்டுள்ளன.

இருப்பினும், உள்ளமைக்கப்பட்ட ஆதரவு இருந்தபோதிலும், இந்த அம்சம் ஆவணப்படுத்தப்படவில்லை.

Borland நெட்வொர்க்கிங் மாநாட்டின் சமீபத்திய இடுகைகள் மற்றும் Google சேவையகத்தைப் பயன்படுத்தி இணையத்தில் தேடுதல் ஆகியவை ஏற்கனவே உள்ள குறியீட்டை Delphi 6 இலிருந்து Delphi 7 ஆக மாற்றுவதற்கான வழியை உருவாக்க ஆசிரியர்களை அனுமதித்துள்ளன. ஆனால் எல்லாவற்றுக்கும் அதன் நேரம் உள்ளது.

முக்கிய யோசனை

இந்த கட்டுரை மூன்று பகுதிகள் கொண்ட தொடரின் முதல் பகுதி. இது முக்கிய விதிகளை விவரிக்கிறது. இரண்டாவது மற்றும் மூன்றாவது பகுதிகள் சில பிரச்சனைகள் மற்றும் அவற்றைத் தீர்ப்பதற்கான வழிகளுக்கு அர்ப்பணிக்கப்படும். முக்கிய யோசனையை விவரிக்க ஆரம்பிக்கலாம்.

  • ஒரு முழுமையான HTTP சேவையகமாக இருங்கள்;
  • இண்டியை ஒரு தளமாக பயன்படுத்தவும்;
  • SOAP நெறிமுறை மூலம் வெளியிடுவதை ஆதரிக்கவும்;
  • SOAP DataModules ஐ வெளியிடும் திறன் கொண்டது, இது SOAP/HTML அடிப்படையில் உங்கள் சொந்த n-டையர் சர்வரை உருவாக்க அனுமதிக்கும்.

HTTP சர்வர் மற்றும் SOAP

பலர் இண்டியை அறிந்திருக்கிறார்கள் மற்றும் இதற்கு முன்பு THTTPSserver கூறுகளைப் பயன்படுத்தியுள்ளனர். விண்ணப்பப் படிவத்தில் இந்தக் கூறுகளை வைப்பது எளிது, ஆனால் SOAPஐ எவ்வாறு ஆதரிக்கிறீர்கள்? "C:Program FilesBorlandDelphi7SourceIndy" கோப்பகத்தில் IdHTTPWebBrokerBridge.pas கோப்பைக் காணலாம். இதுவே உங்களுக்குத் தேவையானது.

இந்த கோப்பு Indy இயங்கக்கூடிய பகுதியாக இல்லை, எனவே நீங்கள் அதை உங்கள் தற்போதைய திட்டப்பணியில் நிலையான திட்டக் கோப்பாக சேர்க்க வேண்டும். (திட்டத்தை தொகுக்க, உங்களுக்கு IdCompilerDefines.inc கோப்பும் தேவைப்படும்.) இந்தக் கோப்புகள் தற்போதைய திட்டக் கோப்பகத்தில் நகலெடுக்கப்பட வேண்டும். வேகத்தை அதிகரிக்க குறியீடு மாற்றங்கள் தேவைப்படலாம், எனவே இந்த கோப்புகளை இண்டி விநியோகத்திலிருந்து தனித்தனியாக வைத்திருப்பது சிறந்தது.

TIdHTTPWebBrokerBridge எனப்படும் SOAP பாக்கெட்டுகளை ஆதரிக்கும் வகையில் நீட்டிக்கப்பட்ட THTTPSserver இலிருந்து ஒரு மாற்று கூறு செயல்படுத்தப்படுவதைப் பின்வருவது விவரிக்கிறது. இந்த கட்டமைப்பானது TCustomHTTPSserver இலிருந்து பெறப்பட்ட ஒரு வகுப்பாகும் மற்றும் அடிப்படை கோரிக்கை பிணைப்பை ஆதரிக்கிறது.

இந்த வகுப்பை தட்டிலிருந்து அணுக முடியாது என்பதால், உங்கள் குறியீட்டை இயக்கும் போது அதை வழக்கமான பொருளாக வரையறுக்க வேண்டும்.

SOAP உடன் செயல்படும் கூடுதல் பண்புகளைத் தவிர்த்து, வழக்கமான THTTPS சேவையகத்தைப் போலவே இந்தப் பொருளையும் பயன்படுத்தலாம்.
இருப்பினும், முதலில் தேவையான குறியீட்டைத் தயாரிப்பதைப் பார்ப்போம்.

WebBroker மற்றும் Indy

இதற்கு முன் இணைய சேவைகளை உருவாக்கியவர்களுக்கு, நீங்கள் பயன்படுத்துகிறீர்கள் என்பது உங்களுக்குத் தெரியும் WebBroker. டெல்பி 7, டெல்பி 6 போன்றது, SOAP ஐ ஆதரிக்க WebBroker கட்டமைப்பைப் பயன்படுத்துகிறது.

எனவே நீங்கள் ஒரு தொகுதியை உருவாக்க வேண்டும் TWebModuleபின்வரும் மூன்று கூறுகளை அதில் வைக்கவும்: THTTPSoapDispatcher, THTTPSoapPascalInvoker மற்றும் TWSDLHTMLPublish. அவை அனைத்தும் கூறு தட்டுகளின் WebServices தாவலில் இருந்து கிடைக்கும். SOAPDispatcher ஐ SOAPPascalInvoker உடன் இணைத்த பிறகு, விண்ணப்பப் படிவம் தயாராக உள்ளது. இறுதி முடிவு பின்வரும் படத்தில் காட்டப்பட்டுள்ளதைப் போன்றதாக இருக்க வேண்டும்:

(தொகுதி uWebModule.pas)

இந்தப் படிவத்திற்கான தனிப்பயன் குறியீட்டை மாற்றவோ அல்லது செயல்படுத்தவோ தேவையில்லை என்பதால், எல்லாவற்றையும் அப்படியே விட்டுவிடுவது நல்லது.

WebModule மற்றும் Indy

HTTP சேவையகத்தை செயல்படுத்த தேவையான குறியீட்டின் மற்ற பகுதிக்கு செல்லலாம்.

நீங்கள் பார்க்க முடியும் என, TIdHTTPWebBrokerBridge ஆனது RegisterWebModuleClass முறையைக் கொண்டுள்ளது, இது உங்கள் சொந்த WebModule ஐப் பதிவுசெய்து சேவையகத்திற்குக் கிடைக்கச் செய்யும்.

எனவே, fServer சர்வர் பொருளை உருவாக்கிய பிறகு, நீங்கள் fServer.RegisterWebModuleClass (TwmSOAPIndy) வகுப்பை அழைக்க வேண்டும்.

குறிப்பு. TIdHTTPWebBrokerBridge இன் இயல்பான செயலாக்கத்தில், ஒவ்வொரு முறை கோரிக்கை பெறப்படும்போதும் TwmSOAPIndy ஆப்ஜெக்ட் உருவாக்கப்படும். வெளிப்படையாக இது அவசியமில்லை. எனவே, நிரந்தர உருவாக்கத்தை வழங்கும் வகையில் வகுப்பை மாற்றியமைக்கலாம் இந்த பொருளின்சர்வர் பொருள் இருக்கும் வரை. மேலும் தகவலுக்கு, வகுப்பு செயல்படுத்தல் ஆவணத்தைப் பார்க்க பரிந்துரைக்கப்படுகிறது.

சர்வர் தயாரா?

டெல்பி 6 இல் பயன்படுத்தப்படும் இண்டி கூறுகள்.

அடிப்படை இணைய சேவைகள் மற்றும் நெறிமுறைகளுக்கு கூடுதலாக, பரந்த அளவிலான கூடுதல் சேவைகள் உள்ளன, அவற்றின் திறன்கள் பெரும்பாலும் இணைய உருவாக்குநர்களால் பயன்படுத்தப்படுகின்றன. கூடுதலாக, உலாவியைப் பயன்படுத்தி தகவலைக் காண்பிக்கும் திறன் இணைய பயன்பாடுகளுக்கு எப்போதும் ஏற்றுக்கொள்ளக்கூடிய தீர்வாக இருக்காது. இந்த வழக்கில், தரவு பரிமாற்றத்திற்கு இணைய உள்கட்டமைப்பைப் பயன்படுத்துவது நியாயமானது, மேலும் டெல்பியில் உருவாக்கப்பட்ட மிகவும் சிக்கலான கிளையன்ட் பயன்பாடுகள் மூலம் தகவல் காட்சியை வழங்குதல்.

நிலையான வலை சேவையகங்களில் சேர்க்கப்படாத சிறப்பு சேவையக தர்க்கத்தை நீங்கள் செயல்படுத்த வேண்டும் என்று வைத்துக்கொள்வோம். இந்த வகைச் சிக்கல்களைத் தீர்க்க, நெவ்ரோனா டிசைன்ஸிலிருந்து (http://www.nevrona.com/Indy/) இணைய நேரடி (இண்டி) நூலகத்தை டெல்பி கொண்டுள்ளது. போர்லாண்ட் டெல்பிக்காக பிரத்யேகமாக உருவாக்கப்பட்ட இந்த நூலகத்தில் ஏற்கனவே எட்டு பதிப்புகள் உள்ளன, அவற்றில் சமீபத்தியது சேர்க்கப்பட்டுள்ளது புதிய பதிப்புடெல்பி. கூறுகளின் தொகுப்பு மூன்று குழுக்களாக பிரிக்கப்பட்டுள்ளது: கிளையன்ட் (இண்டி கிளையண்ட்), சர்வர் (இண்டி சர்வர்கள்) மற்றும் துணை (இண்டி மற்றவை).

இண்டி கிளையண்ட்கள் மற்றும் இண்டி சர்வர்கள்

பெரும்பான்மை இண்டி கூறுகள்கிளையண்ட் மற்றும் இண்டி சர்வர்கள் நெறிமுறைகள் மற்றும் சேவைகளின் கிளையன்ட் மற்றும் சர்வர் பகுதிகளுடன் தொடர்புடைய ஜோடிகளாகும் (தனிப்பட்ட, முக்கியமாக டன்னல்மாஸ்டர் மற்றும் டன்னல்ஸ்லேவ் போன்ற சர்வர் அடிப்படையிலான கூறுகளைத் தவிர), மேலும் TCP/IP, UDP போன்ற நெறிமுறைகளைப் பயன்படுத்த அனுமதிக்கின்றன. NNTP, SMTP, FTP , HTTP, அத்துடன் ECHO, FINGER, WHOIS போன்ற சேவைகள்.

Indy கிளையன்ட் கூறுகள் சாக்கெட்டுகளைப் பயன்படுத்தி எழுதப்படுகின்றன. கிளையன்ட் பக்க சாக்கெட்டுக்கு சர்வருடன் இணைப்பு தேவை. இணைப்பு நிறுவப்பட்டால், கிளையன்ட் மற்றும் சர்வர் செய்திகளை பரிமாறிக்கொள்ளலாம். இந்த செய்திகள் வேறுபட்ட இயல்புடையவை, ஆனால் பொதுவாக ஒரு குறிப்பிட்ட நெறிமுறையைப் பயன்படுத்தி பரிமாற்றம் நிகழ்கிறது (எடுத்துக்காட்டாக, HTTP)

TIdTCPClient மற்றும் TIdTCPSserver

இந்த கூறுகள் முக்கிய பிணைய நெறிமுறைகளில் ஒன்றான TCP (டிரான்ஸ்மிஷன் கண்ட்ரோல் புரோட்டோகால்) ஆதரிக்கப் பயன்படுகின்றன, மேலும் TIdSMTP மற்றும் TIdFTP கூறுகளுக்கான அடிப்படை வகுப்புகளாகவும் உள்ளன. TIdTCPSserver வகுப்பில் ThreadMgr பண்பு உள்ளது, அது இயல்புநிலை பூஜ்ஜியமாகும். TIdTCPSserver இயக்கப்பட்டிருக்கும் போது ThreadMgr பூஜ்யமாக இருந்தால், TIdThreadMgrDeafault வகுப்பு மறைமுகமாக உருவாக்கப்படும். இல்லையெனில், நிறுவப்பட்ட செயல்முறை மேலாளர் பயன்படுத்தப்படுகிறது.

TIdUDPClient மற்றும் TIdUDPSserver

இந்த கூறுகள் ஆதரிக்கப் பயன்படுகின்றன பிணைய நெறிமுறை UDP (User Datagram Protocol) மற்றும் பல இண்டி கூறுகளுக்கு அடிப்படை வகுப்புகளாகவும் உள்ளன.

TIdChargenServer

பொதுவாக சோதனை நோக்கங்களுக்காக சீரற்ற குறியீடுகளை உருவாக்க கூறு பயன்படுத்தப்படுகிறது.

TIdDayTime மற்றும் TIdDayTimeServer

கூறுகள் நேர சேவையை வழங்க பயன்படுத்தப்படுகின்றன. கிளையன்ட் கோருகிறது, மற்றும் சர்வர் தற்போதைய தேதி மற்றும் நேரத்தை தெரிவிக்கிறது.

TIdDNS ரிசல்வர்

இது DNS (டொமைன் பெயர் சேவை) சேவையகத்திலிருந்து கோரிக்கைகளை வழங்கும் கிளையன்ட் கூறு ஆகும். டிஎன்எஸ் சர்வர் வினவல்கள் கணினியின் பெயரை அதன் ஐபி முகவரியுடன் மாற்றும் வகையில் வடிவமைக்கப்பட்டுள்ளன. TIdDNSResolver என்பது TIdUDPClient வகுப்பின் வழித்தோன்றலாகும்.

TIdDICTSserver

டிக்ஷனரி சர்வர் புரோட்டோகால் (டிஐசிடி) ஆதரிக்கும் சர்வர் கூறு, டிசிபி நெறிமுறையை அடிப்படையாகக் கொண்ட சர்வர் பக்க அகராதி, இது கிளையன்ட் ஒரு இயல்பான மொழி அகராதியை அணுக அனுமதிக்கிறது.

TIdDISCARDSசர்வர்

பதிவுகள் சேவையகத்தை ஆதரிக்கும் சேவையக கூறு. பதிவுகளை பிழைத்திருத்தம் மற்றும் அளவீட்டு கருவியாகப் பயன்படுத்தலாம். ரெக்கார்ட்ஸ் சேவையானது எந்தத் தரவையும் பெற விரும்புவோருக்கு வெறுமனே ஒப்படைக்கிறது.

TI dEcho மற்றும் TI dECHOServer

கூறுகள் ஒரு பதில் சேவையை வழங்க வடிவமைக்கப்பட்டுள்ளன, பொதுவாக நெட்வொர்க்கின் ஆரோக்கியத்தை சரிபார்க்கப் பயன்படுகிறது. கிளையன்ட் சேவையகத்திற்கு உரைச் செய்தியை அனுப்புகிறது, சேவையகம் வாடிக்கையாளருக்கு செய்தியை அனுப்புகிறது. செய்தி சிதைந்தால், பிணையம் செயலிழக்கும்.

TIdFinger மற்றும் TIdFingerServer

கணினியில் உள்ள பிற பயனர்களின் இருப்பைப் பற்றிய தரவை வினவுவதற்கு பயனரை அனுமதிக்கும் நெறிமுறையை வழங்குவதற்காக கூறுகள் வடிவமைக்கப்பட்டுள்ளன. சில சேவையகங்கள் அத்தகைய கிளையன்ட் கோரிக்கைகளை கையாளுகின்றன. இந்த ஜோடி கூறுகளைப் பயன்படுத்துவது, கணினியில் உள்ள பிற பயனர்களின் இருப்பைத் தீர்மானிக்கும் கிளையன்ட் கோரிக்கைகளுக்கு சேவை செய்ய உங்களை அனுமதிக்கும்.

இந்த கூறு கோப்பு பரிமாற்ற நெறிமுறைக்கான முழு ஆதரவையும் கொண்டுள்ளது - FTP (கோப்பு பரிமாற்ற நெறிமுறை). செயலற்ற மற்றும் செயலில் உள்ள தரவு பரிமாற்றம் ஆதரிக்கப்படுகிறது, அதே போல் GET மற்றும் PUT, கோப்பகங்களை நீக்குதல், ஒதுக்கீடுகள், கோப்பு மற்றும் கோப்பக அளவுகளைப் பெறுதல் போன்ற செயல்பாடுகள். TI dFTP இயக்க TIdSimpleServer வகுப்பைப் பயன்படுத்துகிறது. ஒரு FTP கோப்பு பரிமாற்றம் செயல்பாட்டில் இருக்கும்போது, ​​தரவு பரிமாற்றத்திற்காக இரண்டாம் நிலை TCP இணைப்பு திறக்கப்பட்டு, தரவு மாற்றப்பட்டவுடன் மூடப்படும். இந்த இணைப்பு "தரவு இணைப்பு" என்று அழைக்கப்படுகிறது, இது ஒவ்வொரு கோப்பு பரிமாற்றத்திற்கும் தனித்துவமானது.

TIdGopher மற்றும் TIdGopherServer

இந்த கூறுகள் ஒரு பிணைய நெறிமுறையை வழங்க வடிவமைக்கப்பட்டுள்ளன சமீபத்தில் WWW இலிருந்து ( உலகளாவியவலை) HTTP நெறிமுறை. இந்த நெறிமுறையை செயல்படுத்தும் சேவையகம் படிநிலை விநியோகிக்கப்பட்ட ஆவண ஓட்ட ஆதரவு அமைப்பை வழங்குகிறது. demosindyGopherClient மற்றும் demosindy GopherServer கோப்பகத்தில் அமைந்துள்ள இந்த ஜோடி கூறுகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு, இந்த நெறிமுறையைப் பயன்படுத்தி உங்கள் கணினியில் உள்ள கோப்புகளைப் பற்றிய தகவலை உள்ளூர் நெட்வொர்க்கில் எவ்வாறு வழங்கலாம் என்பதை விளக்குகிறது.

TIdHostNameServer

வாடிக்கையாளர்களுக்கு உள்ளூர் சர்வர் பெயரை அனுப்ப வடிவமைக்கப்பட்ட ஒரு சர்வர் கூறு.

TIdHTTP மற்றும் TIdHTTPSserver

கூறுகள் HTTP பிணைய நெறிமுறையை வழங்க பயன்படுகிறது (பதிப்புகள் 1.0 மற்றும் 1.1 ஆதரிக்கப்படுகிறது, இதில் GET, POST மற்றும் HEAD செயல்பாடுகள் அடங்கும்). கூடுதலாக, அங்கீகாரம் மற்றும் ப்ராக்ஸி சேவையகங்களைப் பயன்படுத்துவதற்கான ஆதரவு வழங்கப்படுகிறது. கொடுக்கப்பட்ட நெறிமுறையை ஆதரிக்கும் மற்றொரு வலை சேவையகத்திற்கு சேவைகளை வழங்க சேவையக கூறு பயன்படுத்தப்படுகிறது. TIdHTTPSserver குக்கீகள், மாநில மேலாண்மை போன்ற செயல்பாடுகளைச் செயல்படுத்த உதவுகிறது.

TIdIcmpClient

இன்டர்நெட் கண்ட்ரோல் மெசேஜ் புரோட்டோகால் (ஐசிஎம்பி) வழங்க வடிவமைக்கப்பட்ட கிளையன்ட் கூறு, இது பிங் செயல்பாடுகள் மற்றும் நெட்வொர்க் ட்ரேசிங் செய்ய பயன்படுகிறது.

MIME என்கோடிங் மற்றும் டிகோடிங்கிற்கான ஆதரவு மற்றும் மல்டிபைட் கேரக்டர் டிரான்ஸ்மிஷன் உள்ளிட்ட போஸ்ட் ஆபிஸ் புரோட்டோகால் (POP) வழங்க வடிவமைக்கப்பட்ட கிளையன்ட் கூறு.

TIdIMAP4சர்வர்

சர்வரில் IMAP (இன்டர்நெட் மெசேஜ் அக்சஸ் புரோட்டோகால்) செயல்பாடுகளை ஆதரிக்க வடிவமைக்கப்பட்ட சர்வர் கூறு. நெறிமுறை செய்திகளைத் தேட உங்களை அனுமதிக்கிறது மின்னஞ்சல்சர்வரில். IMAP மற்றும் POP நெறிமுறைகளுக்கு இடையே உள்ள வேறுபாடு என்னவென்றால், POP நெறிமுறை தேவைப்படுகிறது கூடுதல் நினைவகம்தரவைச் சேமிக்க, மற்றும் IMAP நெறிமுறை கிளையன்ட் இயந்திரத்திற்குப் பதிலாக சேவையகத்தை அணுகுகிறது. IMAP4 POP3 ஐ மாற்றுவதற்காக உருவாக்கப்பட்டது, ஆனால் POP3 இன்றுவரை பரவலாகப் பயன்படுத்தப்படும் தரநிலையாக உள்ளது.

TIdIRCSserver

இணையத்தில் பொதுவாகப் பயன்படுத்தப்படும் சேவை செயல்பாடுகளை ஆதரிக்கும் வகையில் வடிவமைக்கப்பட்ட சர்வர் கூறு, பொதுவாக அரட்டை என்று அழைக்கப்படுகிறது. கூறு அடிப்படை வழங்குகிறது கட்டுமான தொகுதிகள் IRC (இன்டர்நெட் ரிலே அரட்டை) சர்வருக்கு.

TIdMappedPortTCP

ப்ராக்ஸி சர்வர்களில் பெரும்பாலும் பயன்படுத்தப்படும் மேப் செய்யப்பட்ட போர்ட்களை உருவாக்க வடிவமைக்கப்பட்ட சர்வர் கூறு. இந்த கூறுகளின் முறைகள் ஒரு துறைமுகத்தை மற்றொன்றுக்கு வரைபடமாக்க உங்களை அனுமதிக்கின்றன. எடுத்துக்காட்டாக, போர்ட் 80 ஐ போர்ட் 3000 க்கு வரைபடமாக்கலாம், மேலும் முதல் போர்ட்டிற்கான அனைத்து கோரிக்கைகளும் (போர்ட் 80) இரண்டாவது போர்ட்டுக்கு (போர்ட் 3000) அனுப்பப்படும்.

TIdNNTP மற்றும் TIdNNTPS சர்வர்

செய்தி சேவைகளில் பயன்படுத்தப்படும் நெட்வொர்க் செய்தி பரிமாற்ற நெறிமுறையை (NNTP) ஆதரிக்க இந்த கூறுகள் தேவை. கிளையன்ட் கூறு MIME என்கோடிங் மற்றும் டிகோடிங்கிற்கான ஆதரவையும், மல்டிபைட் எழுத்துக்கள் மற்றும் மாற்று குறியாக்கங்களுக்கான ஆதரவையும் உள்ளடக்கியது. செய்தி சேவையகங்களை உருவாக்க சேவையக கூறு உங்களை அனுமதிக்கிறது. TIdNNTPServer ஒரு முழு அம்சம் கொண்ட செய்தி சேவையகம் அல்ல, ஆனால் அத்தகைய சேவையகத்திற்கான அடிப்படை செயல்பாட்டை வழங்கும் ஒரு கூறு.

TIdQOTD மற்றும் TIdQOTDSserver

நாள் சேவையின் மேற்கோளை வழங்க கூறுகள் பயன்படுத்தப்படுகின்றன. தினசரி மேற்கோளைப் பெற, கிளையன்ட் கூறு சர்வர் கூறு நிகழ்வோடு இணைக்கிறது. ஒவ்வொரு சேவையக நிகழ்வும் ஒரு தனிப்பட்ட மேற்கோள் தரவுத்தளத்தைக் கொண்டுள்ளது.

எளிய அஞ்சல் பரிமாற்ற நெறிமுறை (SMTP) பயன்பாடுகளில் பயன்படுத்த வடிவமைக்கப்பட்ட கிளையன்ட் கூறு, அங்கீகாரம், MIME என்கோடிங் மற்றும் டிகோடிங் மற்றும் பல பைட் எழுத்து ஆதரவுக்கான ஆதரவை வழங்குகிறது.

SNTP (சிம்பிள் நெட்வொர்க் டைம் புரோட்டோகால்) வழங்க வடிவமைக்கப்பட்ட கிளையன்ட் கூறு - ஒரு நேர சேவை. தீர்மானிக்க எந்த நேர சேவையையும் இணைக்க பயன்படுத்தலாம் தற்போதைய தேதிகள்மற்றும் நேரம்.

TIdSimpleServer

இலகுரக TCP சேவையகத்தை வழங்கும் சேவையக கூறு. புள்ளி-க்கு-புள்ளி இணைப்பை ஒழுங்கமைக்க உங்களை அனுமதிக்கிறது. இது ஒரு பயனருடன் சேவையகங்களை உருவாக்கப் பயன்படுகிறது, அதாவது ஒரு நேரத்தில் ஒரு இணைப்பை மட்டுமே இது வழங்க முடியும். TIdTCPServer கூறுகளைப் போலன்றி, வாடிக்கையாளர்களிடமிருந்து கோரிக்கைகளுக்காகக் காத்திருக்கும் போது மற்றும் இந்தக் கோரிக்கைகளைச் செயல்படுத்தும் போது இது இரண்டாம் நிலை செயல்முறைகளை உருவாக்காது. வேறு வார்த்தைகளில் கூறுவதானால், சேவையகம் ஒரு கிளையண்டின் கோரிக்கையை வழங்கினால், அந்த நேரத்தில் மற்றொரு கிளையன்ட் அதை இணைக்கத் தொடர்பு கொண்டால், முதல் கோரிக்கையைச் செயலாக்கும் வரை அது தடுக்கப்படும்.

TIdTelnet மற்றும் TIdTelnetServer

கன்சோல் பேச்சுவார்த்தைகள் மற்றும் அங்கீகாரம் உட்பட மற்றொரு கணினியில் தொலைநிலை அமர்வுகளை ஒழுங்கமைக்க கிளையன்ட் கூறு பயன்படுத்தப்படுகிறது. தகவல் தொடர்பு நெறிமுறையானது, சேவையகத்துடன் ஊடாடும் ஒரு நபரின் இருப்பைக் கருதுகிறது. கிளையன்ட் கூறுக்கு காட்சி ஆதரவு அல்லது முனைய எமுலேஷன் இல்லை, ஆனால் சர்வர் பகுதிக்கு ஒரு இணைப்பை வழங்குகிறது. பொதுவாக, TIdTelnetServer சேவையக நெறிமுறையானது வாடிக்கையாளர்களுடன் ஊடாடும் தொடர்புக்காக ஒரு உரை இடைமுகத்துடன் தொலைநிலை தரவுத்தளங்களை ஒழுங்கமைக்கப் பயன்படுகிறது.

TIdTime மற்றும் TIdTimeServer

கிளையன்ட் கூறு என்பது நேரத்தை நிர்ணயிப்பதற்கான TIdSNTP கூறுக்கு மாற்றாகும். இரண்டு நெறிமுறைகளின் வடிவங்களும் வேறுபட்டவை என்பதை கவனத்தில் கொள்ள வேண்டும். TIdTime RFC 868 வடிவமைப்பை அடிப்படையாகக் கொண்டது (உள் யுனிக்ஸ் ஓஎஸ் தரநிலையில் நேரத்தைத் தருகிறது, தேவையான அனைத்து மாற்றங்களையும் செய்கிறது). டேடைம் சர்வரைப் போலவே சர்வர் கூறுகளும் செயல்படுகின்றன. நேர சேவையை செயல்படுத்த பயன்படுத்த முடியும் உள்ளூர் கணினி. கூடுதல் குறியீடு தேவையில்லை, TIdTimeServer இன் உதாரணத்தை உருவாக்கவும், அது சர்வர் கணினியின் உள் கடிகாரத்தின் நேரத்தை வழங்கும்.

TIdTrivialFTP மற்றும் TIdTrivialFTPSசர்வர்

ஒரு எளிய கோப்பு பரிமாற்ற நெறிமுறையை ஒழுங்கமைக்க இந்த கூறுகள் அவசியம். இந்த நெறிமுறையின் கிளையன்ட் கூறு தொடர்புடைய சேவையக கூறுகளுடன் இணைக்கப் பயன்படுகிறது. நெறிமுறையானது தனிப்பட்ட, இலகுரக, கோப்பு பரிமாற்றத்திற்கான உள்ளூர் நிகழ்வுகளுக்காக வடிவமைக்கப்பட்டுள்ளது, எடுத்துக்காட்டாக, உள்ளூர் பகுதி நெட்வொர்க்குகளில் அல்லது ரூட்டிங் அட்டவணைகளை ரவுட்டர்களில் ஏற்றுவதற்கு (பதிவேற்றுவதற்கு). இந்த நெறிமுறையின் பலவீனமான பண்புகள் காரணமாக, அங்கீகார வழிமுறைகள் அல்லது வேறு ஏதேனும் பாதுகாப்பு வழிமுறைகளைப் பயன்படுத்தும் போது அதன் பயன்பாடு பரிந்துரைக்கப்படவில்லை. இந்த நெறிமுறையின் முக்கிய நோக்கம், கோப்புகளை மாற்றும் நோக்கத்திற்காக ஒரு வன்பொருள் சாதனத்திற்கு மாற்றுவதாகும்.

TIdTunnelMaster மற்றும் TIdTunnelSlave

ஒரு இயற்பியல் (சுரங்கம்) மீது பல தருக்க இணைப்புகளை ஒழுங்கமைக்க ப்ராக்ஸி சேவையகங்களில் சர்வர் டன்னல் கூறுகள் பயன்படுத்தப்படுகின்றன. இந்த வகுப்புகள் பல்வேறு நோக்கங்களுக்காகப் பயன்படுத்தப்படலாம், எடுத்துக்காட்டாக, இரகசியமற்ற சேனல்களில் ஒரு இரகசிய இணைப்பை ஒழுங்கமைக்க.

TIdWhois மற்றும் TIdWhoIsServer

இந்த கிளையன்ட் கூறு எந்த நிலையான ஹூயிஸ் சர்வருடனும் இணைக்கிறது, இது டொமைன்கள் பற்றிய தகவலைப் பெற உங்களை அனுமதிக்கிறது. சேவையக கூறு ஒரு NIC சேவையகத்தின் அடிப்படை செயல்பாட்டை வழங்குகிறது.

இண்டி மற்றவை

Indy Miscellaneous Components palette பக்கம் BASE64, UUE, மேற்கோள் அச்சிடக்கூடிய மற்றும் பிற பொதுவான மின்னஞ்சல் தொடர்பு வடிவங்கள், கடவுச்சொற்களை சேமிக்க பயன்படுத்தப்படும் குறியாக்க தரநிலைகளுக்கான குறியாக்கிகள் (MD2, MD4 மற்றும் MD5) ஆகியவை அடங்கும். மின்னணு கையொப்பங்கள்மீளமுடியாத (தெரிவுபடுத்துவது கடினம்) வடிவத்தில், அத்துடன் பல பயனுள்ள கூறுகள் மற்றும் பயன்பாடுகள் இணைய பயன்பாடுகளின் வளர்ச்சியில் பெரும்பாலும் பயன்படுத்தப்படுகின்றன.

TIdAntiFreeze

Indy கூறுகளின் தொகுதி அடிப்படையிலான அல்காரிதம்கள் காரணமாக, இணைப்பு வேலை செய்யும் போது பயன்பாடு சிக்கியதாக அடிக்கடி தோன்றுகிறது. பயன்பாட்டை முடக்குவதைத் தடுக்க தகவல்தொடர்புகளை ஒழுங்கமைக்கும் போது இரண்டாம் நிலை செயல்முறைகளின் (நூல்கள்) பயன்பாட்டை அகற்ற, படிவத்தில் குறிப்பிட்ட கூறுகளை வைக்க போதுமானது.

டிசிபி/ஐபி புரோட்டோகால் அடுக்கிலிருந்து கோரிக்கைகளை அலசுவதன் மூலமும், வெளிப்புற இணைப்புகள் தடுக்கப்படும் போது தாமதத்தின் போது பயன்பாட்டிற்கு செய்திகளை அனுப்புவதன் மூலமும் இந்த கூறு செயல்படுகிறது, இது குறியீடு இயங்கும் மாயையை உருவாக்குகிறது. முக்கிய செயல்முறைக்கு மட்டுமே தடுக்கப்பட்ட இணைப்புகளை கூறு பாதிக்கிறது என்பதால், பயன்பாட்டின் இரண்டாம் நிலை செயல்முறைகளில் TIdAntiFreeze இன் பயன்பாடு தேவையில்லை. TIdAntiFreeze கூறு இணைப்புகளை மெதுவாக்குகிறது என்பதை அறிந்து கொள்ளுங்கள், ஏனெனில் செய்திகளைச் செயலாக்குவதற்கு முக்கிய செயல்முறை அவ்வப்போது குறுக்கிடப்படுகிறது. உருவாக்கப்படும் பயன்பாடு, OnClick, OnPaint, OnResize போன்ற செய்திகளைச் செயலாக்க அதிக நேரம் செலவழிக்காமல் பார்த்துக் கொள்ள வேண்டும். ஓரளவிற்கு, TIdAntiFreeze வகுப்பின் பண்புகள் மூலம் இதைக் கட்டுப்படுத்தலாம். இந்த கூறுகளின் பயன்பாடு கட்டாயமில்லை, ஆனால் பயன்பாட்டின் காட்சி இடைமுகத்துடன் இணைப்புகளை ஒத்திசைப்பதில் சிக்கலை தீர்க்க இது உங்களை அனுமதிக்கிறது.

TIdDateTimeStamp

இணைய நெறிமுறைகள் வெவ்வேறு தேதி மற்றும் நேர வடிவங்களைப் பயன்படுத்துகின்றன என்பது தொடர்பான தேதி மற்றும் நேரக் கணிதத்தைச் செயல்படுத்துவதற்கான வகுப்பு; கூடுதலாக, வாடிக்கையாளர்களும் சேவையகங்களும் வெவ்வேறு நேர மண்டலங்களில் அமைந்திருக்கலாம்.

TIdIPWatch

கணினியின் ஐபி முகவரியில் ஏற்படும் மாற்றங்களைத் தொடர்ந்து கண்காணிக்கும் டைமர் அடிப்படையிலான கூறு இது. மாற்றம் கண்டறியப்படும்போது கூறு நிகழ்வுகள் நிகழ்கின்றன. கணினி இணையத்துடன் இணைக்கப்பட்டுள்ளதா அல்லது வேறு ஏதேனும் நெட்வொர்க்குடன் இணைக்கப்பட்டுள்ளதா என்பதைக் கண்டறிய இந்தக் கூறு பொதுவாகப் பயன்படுத்தப்படுகிறது. புதிய நெட்வொர்க்குடன் இணைக்கும் போது DHCP (டைனமிக் ஹோஸ்ட் கன்ஃபிகரேஷன் புரோட்டோகால்) சர்வரால் ஒதுக்கப்படும் IP முகவரியின் காரணமாக இந்த சூழ்நிலையில் IP முகவரியில் மாற்றம் ஏற்படலாம்.

TIdLogDebug

எந்தவொரு கிளையன்ட் அல்லது சர்வர் கூறுகளின் நிகழ்வுகளை இடைமறித்து நிகழ்வின் பதிவை வைப்பதே இந்த கூறுகளின் நோக்கம் குறிப்பிட்ட கோப்பு. இண்டி கூறுகளை பிழைத்திருத்தத்திற்கு இந்த கூறு மிகவும் பயனுள்ளதாக இருக்கும்.

TIdMessage

செய்திகளை சரியாக மறைகுறியாக்க அல்லது குறியாக்கம் செய்ய மற்ற கூறுகளுடன் இணைந்து கூறு பயன்படுத்தப்படுகிறது. இவை POP, SMTP மற்றும் NNTP கூறுகளாக இருக்கலாம். வகுப்பு MIME குறியாக்கம் மற்றும் மறைகுறியாக்கம், மல்டிபைட் எழுத்துக்கள் மற்றும் ISO குறியாக்கத்தை ஆதரிக்கிறது.

TIdNetworkகால்குலேட்டர்

பயன்பாடுகளை உருவாக்கும்போது பயன்படுத்தக்கூடிய சில Indy கூறுகளில் ஒன்று. நெட்வொர்க் கால்குலேட்டரை நெட்வொர்க் முகமூடிகள், சப்நெட், நெட்வொர்க் வகுப்புகள் போன்ற ஐபி முகவரிகளில் கணக்கீடுகளைச் செய்யப் பயன்படுத்தலாம்.

TIdThreadMgrDefault

கூறு இயல்பாக இரண்டாம் நிலை செயல்முறைகளின் கட்டுப்பாட்டை வழங்குகிறது. செயல்முறை நிர்வாகத்தை ஆதரிக்கும் எந்த Indy கூறுகளும் TIdThreadManager வகுப்பின் எடுத்துக்காட்டு இல்லாதபோது உருவாக்கப்பட்டது. இரண்டாம் நிலை செயல்முறைகளை நிர்வகிப்பதற்கான அடிப்படை திறன்களை மட்டுமே கூறு வழங்குகிறது: தேவைக்கேற்ப அவற்றை உருவாக்குதல் மற்றும் அழித்தல்.

TIdThreadMgrPool

TIdThreadMgrDefault ஐ விட மேம்பட்ட செயல்முறை மேலாண்மை கூறு, ஏனெனில் இது தேவைக்கேற்ப அவற்றை உருவாக்குவது அல்லது அழிப்பதை விட செயல்முறைகளை ஒன்றிணைக்கிறது.

TIdVCard

VCard என்பது வணிக அட்டையின் மின்னணுச் சமமானதாகும், மேலும் உரிமையாளரின் தனிப்பட்ட தகவல் மற்றும் கிராஃபிக் தரவு ஆகியவற்றைக் கொண்டிருக்கலாம்.

TIdIMF டிகோடர்

இணைய செய்திகளை டிகோடிங் செய்ய வடிவமைக்கப்பட்டுள்ளது. இது மற்ற எல்லா குறியாக்கி கூறுகளையும் போலவே TIdCoder வகுப்பின் வழித்தோன்றலாகும். ஆகஸ்ட் 1982 இல் முன்மொழியப்பட்ட ARPA இணைய உரைச் செய்தி வடிவமைப்பு நிலையான RFS-822 மற்றும் டிசம்பர் 1987 இல் முன்மொழியப்பட்ட USENET செய்தியிடல் தரநிலை RFC 1036 ஆகியவற்றின் படி TIdCoder வகுப்பு டிகோட் செய்யப்படுகிறது.

RFS-822 வடிவமைப்பை தலைப்புச் சூழலின் மூலம் கண்டறிய அனுமதிக்கும் வகையில், TIdCoder வகுப்பை விரிவுபடுத்துகிறது. TIdIMFDecoder கூறு TIdMessageClient வகுப்பில் பெறப்பட்ட மற்றும் அனுப்பப்பட்ட செய்திகளை டிகோட் செய்ய பயன்படுத்தப்படுகிறது.

TIdQuotedPrintableEncoder

QuotedPrintableEncoder ஆனது குறிப்பிட்ட வடிவத்தில் உரையை மறைகுறியாக்க உங்களை அனுமதிக்கிறது. புதிய குறியாக்க வகையைக் கொண்ட செய்திகளை அனுப்ப அனுமதிக்கும், ஒரு குறிப்பிட்ட குறியாக்க வகையுடன் ஒரு தனியான அங்கமாக செயல்பட முடியும்.

TIdBase64Encoder

அச்சிட முடியாத எழுத்துக்களை அனுப்புவதை சாத்தியமாக்கும் மற்றொரு குறியாக்க அல்காரிதத்தை செயல்படுத்துகிறது.

TIdUUEncoder

முதல் குறியாக்க அல்காரிதம்களில் ஒன்றான UU குறியாக்கத்தை செயல்படுத்துகிறது. செய்தி சேவைக்கு கட்டுரைகளை அனுப்பும் போது சில நேரங்களில் பயன்படுத்தப்படுகிறது.

TIdXXஎன்கோடர்

இந்த குறியாக்க முறை எப்போதும் பயன்படுத்தப்பட வாய்ப்பில்லை. அடிப்படையில், இது அதே UU குறியாக்கமாகும், ஆனால் வேறு குறியாக்க அட்டவணையுடன் உள்ளது.

TIdCoderMD2

பல்வேறு வகையான MD (மெசேஜ் டைஜஸ்ட்) என்க்ரிப்ஷன் அல்காரிதம் கொண்ட கூறுகள். அவை அனைத்தும் ஷஃபிள் அடிப்படையிலானவை, ஒரு வழி, மற்றும் மறைகுறியாக்க அல்காரிதம்கள் இல்லை.

புரோட்டோகால் கிளையன்ட்கள் மற்றும் சர்வர்களின் கூறுகள், சர்வர் மற்றும் கிளையன்ட் இன்டர்நெட் அப்ளிகேஷன்களை, அடிப்படையானவை (ClientSocket, ServerSocket) மற்றும் இன்டர்நெட் மற்றும் ஃபாஸ்ட்நெட் பேலட்டில் இருந்து பிற கூறுகளுடன் அல்லது அதற்குப் பதிலாக உருவாக்க பயன்படுகிறது. Indy கூறுகள் WebBroker கட்டமைப்பைப் பயன்படுத்துவதில்லை, இணைய நெறிமுறைகள் மற்றும் சேவைகளுக்கான குறைந்த-நிலை ஆதரவை நேரடியாக அவற்றின் மூலக் குறியீட்டில் செயல்படுத்துகிறது ( மூல குறியீடுகள்இணைக்கப்பட்டுள்ளது).

TIdConnectionInterceptOpenSSL மற்றும் TIdServerInterceptOpenSSL

SSL நெறிமுறை - செக்யூர் சாக்கெட்ஸ் லேயர், இரண்டு பயன்பாடுகளுக்கிடையேயான தகவல்தொடர்புகளின் இரகசியம் மற்றும் நம்பகத்தன்மையை உறுதி செய்கிறது, இரண்டு அடுக்குகளைக் கொண்டுள்ளது. பல அடுக்கு போக்குவரத்து நெறிமுறையின் குறைந்த மட்டத்தில் (டிசிபி போன்றவை), SSL என்பது ஒரு பதிவு நெறிமுறை மற்றும் பல்வேறு உயர்-நிலை நெறிமுறைகளை இணைக்கப் பயன்படுகிறது. SSL இன் நன்மை என்னவென்றால், இது ஒரு சுயாதீன பயன்பாட்டு நெறிமுறையாகும், ஆனால் SSL இன் மேல் ஒரு உயர்-நிலை நெறிமுறையைப் பயன்படுத்தலாம்.

SSL தகவல் தொடர்பு பாதுகாப்பை வழங்குகிறது, இதில் மூன்று முக்கிய செயல்பாடுகள் உள்ளன: ரகசிய இணைப்பை வழங்குதல்; உடன் குறியாக்கம் பொது விசை(விலாசதாரரின் நம்பகத்தன்மையை உறுதிப்படுத்த பயன்படுகிறது); தரவு பரிமாற்ற நம்பகத்தன்மைக்கான ஆதரவு.

  • தரவை குறியாக்க சமச்சீர் குறியாக்கவியல் பயன்படுத்தப்படுகிறது (எ.கா. DES, RC4, முதலியன).
  • டிஜிட்டல் கையொப்பம்சமச்சீரற்ற பொது விசை குறியாக்கத்தைப் பயன்படுத்தி வழங்கப்படுகிறது (எடுத்துக்காட்டாக, RSA, DSS, முதலியன).
  • தகவல்தொடர்பு நம்பகத்தன்மை, செய்தி போக்குவரத்து என்பது MAC கணக்கீடுகளைப் பயன்படுத்தி MAC திருத்தக் குறியீடுகள், பாதுகாப்பான ஹாஷ் செயல்பாடுகள் (எ.கா., SHA, MD5, முதலியன) மூலம் செய்தியின் ஒருமைப்பாட்டை சரிபார்க்கிறது.

HTTP மற்றும் சர்வர் அங்கீகாரத்துடன் இணைந்து, SSL வழங்குகிறது தேவையான செயல்பாடுகள்குறியாக்கம் மற்றும் நிறுவப்பட்ட இணைப்பை மேலும் பராமரிக்கிறது, இணைய சேவையகத்தின் நம்பகத்தன்மையை இருமுறை சரிபார்த்தல் போன்றவை. SSL தரவு பரிமாற்றத்தின் போது தகவல்தொடர்புகளை மட்டுமே பாதுகாக்கிறது மற்றும் பிற பாதுகாப்பு வழிமுறைகளை மாற்றாது என்பதை புரிந்து கொள்ள வேண்டியது அவசியம்.

TIdConnectionInterceptOpenSSL மற்றும் TIdServerInterceptOpenSSL கூறுகள் SSL நெறிமுறையைப் பயன்படுத்தி கிளையன்ட் பக்க மற்றும் சர்வர் பக்க இணைப்புகளை வழங்குகின்றன. TIdConnectionInterceptOpenSSL மற்றும் TIdServerInterceptOpenSSL கூறுகள் Delphi 6 இல் மட்டுமே கிடைக்கும், ஆனால் Kylix இல் இல்லை என்பதை கவனத்தில் கொள்ள வேண்டும். இது நெறிமுறையின் சிக்கலான காரணமாகும், இது விண்டோஸ் செயல்படுத்தலின் போது இயக்க முறைமை செயல்பாடுகளை அடிப்படையாகக் கொண்டது.

Indy கூறுகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகளை /Delphi6/Demos/Indy கோப்பகங்களில் காணலாம். மொத்தத்தில், பதிப்பு 8.0 இல் உள்ள இண்டி நூலகம் 69 கூறுகளைக் கொண்டுள்ளது. பதிப்பு 9.0 இல் குறிப்பிடப்பட்ட நூலகத்தில் 86 கூறுகள் இருக்கும் என்று கூறப்பட்டுள்ளது. அனைத்து கூறுகளும் ஒருங்கிணைக்கப்பட்டு டெல்பி 6 மற்றும் கைலிக்ஸ் இரண்டிலும் சேர்க்கப்பட்டுள்ளன, இது குறுக்கு-தளம் பயன்பாடுகளை உருவாக்க அவற்றைப் பயன்படுத்த அனுமதிக்கிறது. அனைத்து இண்டி கூறுகளும் மல்டித்ரெடிங்கை ஆதரிக்கின்றன.

அட்டவணையில் தெளிவாகக் காட்டப்பட்டுள்ளபடி, இண்டி கூறுகள் இணையம் மற்றும் ஃபாஸ்ட்நெட் கூறுகளில் காணப்படும் கிட்டத்தட்ட அனைத்து செயல்பாடுகளையும் செயல்படுத்துகின்றன.

Fastn மற்றும் கூறுகள் இண்டி கூறுகள் கூறுகளின் நோக்கம்
1 TserverSocket, TClientSocket TIdTCPserverSocket, TIdTCPClientSocket TCP/IP நெறிமுறையைப் பயன்படுத்தி இரண்டு கணினிகள் (கிளையன்ட் மற்றும் சர்வர்) இடையேயான தொடர்பு
2 TNMDdayTime TIdDayTime, TIdDayTimeServer தற்போதைய நேரத்திற்கு சேவையகத்தை வினவவும்
3 TNMEcho TIdEcho, TIdEchoServer பதில் சேவையகத்துடன் தொடர்பு கொள்ள பயன்படுகிறது
4 TNMFinger TIdFinger, TIdFingerServer இணையத் தேடல் சேவையகத்திலிருந்து பயனரைப் பற்றிய தகவல்களைப் பெறப் பயன்படுகிறது
5 TNMFTP TIdFTP, TIdTrivialFTP, TIdTrivialFTPSserver FTP நெறிமுறையைப் பயன்படுத்தி கோப்பு பரிமாற்றத்தை வழங்கவும்
6 TNMHTTP TIdHTTP, TIdHTTPSசர்வர் தரவு பரிமாற்றத்திற்கு HTTP நெறிமுறையைப் பயன்படுத்தவும்
7 TNMMsgServ, TNMMsg கிளையண்டிலிருந்து சர்வருக்கு எளிய உரைச் செய்திகளை அனுப்பப் பயன்படுகிறது
8 டிஎன்எம்என்என்டிபி TIdNNTP, TIdNNTPS சர்வர் செய்தி சேவையகத்துடன் தரவு பரிமாற்றத்தை ஆதரிக்கிறது
9 TNMPOP3 TIdPOP3 POP3 நெறிமுறையைப் பயன்படுத்தி அஞ்சல் சேவையகத்திலிருந்து மின்னஞ்சலைப் பெறப் பயன்படுகிறது
10 டிஎன்எம்எஸ்எம்டிபி TIdSMTP இணைய அஞ்சல் சேவையகம் வழியாக மின்னஞ்சல் அனுப்ப பயன்படுகிறது
11 TNMStrm, TNMStrmServ TCP/IP நெறிமுறையைப் பயன்படுத்தி ஒரு ஸ்ட்ரீமுக்கு எழுதப்பட்ட பைனரி தரவை அனுப்புகிறது
12 TNMUDP TIdUDP, TIdUDPSserver UDP நெறிமுறையைப் பயன்படுத்தி தரவை மாற்றவும்
13 TpowerSock, TNMGeneralServer உங்களின் சொந்த கிளையன்ட்கள் (பவர்சாக்) மற்றும் சர்வர்கள் (NMGeneralServer) எழுதுவதற்கு அடிப்படையான கூறு-இணைக்கப்பட்ட வகுப்புகள்
14 TNMUUP செயலி TIdUUEncoder, TIdUUDecoder மறுவடிவமைப்பை மேற்கொள்ளுங்கள் பைனரி கோப்புகள் MIME அல்லது UUENCODE வடிவத்திற்கு
15 TNMURL சரங்களை மாற்றுகிறது HTML வடிவம்மற்றும் ரிவர்ஸ் ரீகோடிங் செய்கிறது

விதிவிலக்குகள் TNMMsgServ, TNMMsg, TNMStrm, TNMStrmServ, TpowerSock, TNMGeneralServer, TNMURL போன்ற வகுப்புகளாகும், இவை காலாவதியான நெறிமுறைகளை செயல்படுத்துகின்றன அல்லது மாற்று வகுப்புகளின் பெரிய குழுவில் செயல்படுத்தப்பட்ட செயல்பாட்டைக் கொண்டுள்ளன.

இருப்பினும், அதன் முன்னோடிகளான இன்டர்நெட் மற்றும் ஃபாஸ்ட்நெட் கூறுகள் போலல்லாமல், Indy ஆனது தரவு டிரான்ஸ்கோடிங் மற்றும் குறியாக்கத்திற்கான ரிச்சர் சர்வர் கூறுகள் மற்றும் கூறுகள், அத்துடன் அங்கீகார ஆதரவு (Indy Misc palette) ஆகியவற்றைக் கொண்டுள்ளது. மேலே உள்ள அட்டவணையில் இருந்து பார்க்க முடிந்தால், முக்கிய நெறிமுறைகள் மற்றும் சேவைகள் கிளையன்ட் மூலம் மட்டுமல்ல, சர்வர் கூறுகளாலும் வழங்கப்படுகின்றன. இவை நேர சேவைகள், மறுமொழி சேவைகள், பயனர் தகவலைப் பெறுதல், அத்துடன் HTTP, NNTP, UDP நெறிமுறைகள் மற்றும் FTP இன் எளிய பதிப்பு.

இண்டி கூறுகளைப் பயன்படுத்துவதற்கான சில எடுத்துக்காட்டுகள்

டெல்பியில் உள்ள Indy கூறுகளில், IP முகவரி ஹோஸ்ட் சொத்தில் வரையறுக்கப்படுகிறது, பொதுவாக கிளையன்ட் பயன்பாடுகளில் மட்டுமே. சர்வர்-ஹோஸ்ட் செய்யப்பட்ட கூறுகள் தொடர்புடைய போர்ட்டைத் தொடங்க அல்லது நிறுத்த அனுமதிக்கும் முறைகளைக் கொண்டுள்ளன - எடுத்துக்காட்டாக, IdTCPSserver கூறுகளின் செயலில் உள்ள சொத்தை மாற்றுவது தொடர்புடைய போர்ட்டைத் தொடங்கும் அல்லது நிறுத்தும். கிளையன்ட் மற்றும் சர்வர் இடையே இணைப்பு நிறுவப்பட்டதும், தரவு பரிமாற்றம் தொடங்கும்.

தரவுகளுடன் பணிபுரியும் போது Indy கூறுகள் பாதுகாப்பு மற்றும் நம்பகத்தன்மைக்கு அதிக முக்கியத்துவம் கொடுக்கின்றன. எடுத்துக்காட்டாக, IdTCPClient கூறு இணைப்பு மற்றும் துண்டிக்கும் முறைகளைக் கொண்டுள்ளது. கிளையன்ட் பக்கத்திலிருந்து கீழே உள்ள குறியீடு போன்ற நிரலாக்க நுட்பத்தைப் பயன்படுத்துதல்:

TCPClient உடன் இணைக்கத் தொடங்குங்கள்; lstMain.Items.Add(ReadLn) முயற்சிக்கவும்; இறுதியாக துண்டிக்கவும்; முடிவு; முடிவு;

சேவையகப் பக்கத்திலிருந்து TIdPeerThread வகுப்பின் ATthread நிகழ்விற்கு ஒரு அளவுருவாக அனுப்பப்பட்ட இணைப்புப் பண்புகளைப் பயன்படுத்துதல்:

AThread.Connection உடன் WriteLn ("அடிப்படை இண்டி சர்வர் சர்வரில் இருந்து ஹலோ") தொடங்கவும். துண்டிக்கவும்; முடிவு;

இணைப்பின் இயல்பான செயல்பாடு அல்லது சரியான பிழை கையாளுதல் ஆகியவற்றை நீங்கள் நம்பலாம்.

தொடர்புடைய வகுப்புகளின் ReadLn மற்றும் WriteLn முறைகளைக் கவனியுங்கள் - அவை நிலையான பாஸ்கல் I/O அறிக்கைகளை ஒத்திருக்கும். இது UNIX நிரலாக்க நுட்பத்திற்கு ஒரு அஞ்சலியாகும், இதில் பெரும்பாலான கணினி செயல்பாடுகள் தொடர்புடைய கோப்புகளைப் படித்து எழுதுவதன் மூலம் செய்யப்படுகின்றன.

Fastnet கூறுகளைப் போலவே, Indy கூறு வகுப்புகளும் நிகழ்வு நிர்வாகத்தை வழங்கப் பயன்படும் நிகழ்வுகளைக் கொண்டுள்ளன. எடுத்துக்காட்டாக, கிளையண்டுடன் இணைக்கும்போது ஒரு படிவத்தில் ஒரு செய்தி காட்டப்படுவதற்கு நீங்கள் ஏற்பாடு செய்யலாம்:

செயல்முறை TForm1.IdECHOServer1Connect(Athread: TIdPeerThread); lblStatus.caption:= "[ சேவை செய்யும் கிளையன்ட் ]"; முடிவு;

இந்த நூலகத்திற்கு தனித்துவமான கிளையன்ட் மற்றும் சர்வர் பகுதிகளுடன் நெறிமுறைகளை செயல்படுத்தும் கூறுகளை Indy வழங்குகிறது. TIdGopherServer மற்றும் TIdGopher கூறுகள், வாடிக்கையாளர் பக்கத்தில் உள்ள GetExtendedMenu, GetFile, GetMenu, GetTextFile முறைகள் மற்றும் சேவையக பக்கத்தில் உள்ள ReturnGopherItem, SendDirectoryEntry ஆகியவை கோப்புகளைப் பார்க்க உதவுகின்றன. பல்வேறு வகையான, மறைக்கப்பட்டதாகக் குறிக்கப்பட்டவை மற்றும் ஆன் கோப்பகங்கள் உட்பட தொலை கணினி(dir *.* கட்டளை என்ன செய்கிறது என்பதைப் போன்றது இயக்க முறைமை MS-DOS).

IdSMTP மற்றும் IdMessage கூறுகளைப் பயன்படுத்தி, SMTP நெறிமுறையைப் பயன்படுத்தி அஞ்சல் அனுப்பக்கூடிய உங்கள் சொந்த வலை பயன்பாட்டை நீங்கள் எளிதாக உருவாக்கலாம்.

இந்த வழக்கில், IdMessage வகுப்பு (Indy Misc பக்கத்தின் 23 கூறுகளில் ஒன்று) செய்தியை உருவாக்குவதற்கு பொறுப்பாகும், இது அதன் பெயரிலிருந்து பின்தொடர்கிறது, மேலும் IdSMTP என்பது அஞ்சல் சேவையகத்துடன் இணைப்பை ஒழுங்கமைக்கிறது.

இண்டியில் பயன்படுத்தப்படும் தொழில்நுட்பம் பூட்டுதல் படிக்க மற்றும் எழுதும் செயல்பாடுகளைப் பயன்படுத்துகிறது. Indy இல் பயன்படுத்தப்படும் எந்த இணைப்பு செயல்பாடும் இணைப்பு முடிவடையும் வரை காத்திருக்கிறது. Indy கிளையன்ட் கூறுகளுடன் பணிபுரியும் போது, ​​நீங்கள் பொதுவாக பின்வருவனவற்றைச் செய்ய வேண்டும்:

  • சேவையகத்துடன் இணைப்பைக் கோருங்கள்;
  • சேவையகத்திற்கு படிக்க மற்றும் எழுத கோரிக்கைகளை உருவாக்கவும் (சேவையகத்தின் வகையைப் பொறுத்து, படி ஒரு முறை அல்லது பல முறை மீண்டும் செய்யப்படுகிறது);
  • சேவையகத்திற்கான இணைப்பை முடித்து, துண்டிக்கவும்.

இண்டி கூறுகள் மிக உயர்ந்த அளவிலான சுருக்கத்தை வழங்க வடிவமைக்கப்பட்டுள்ளன. TCP/IP அடுக்கின் நுணுக்கங்கள் மற்றும் விவரங்கள் புரோகிராமரிடம் இருந்து மறைக்கப்படுகின்றன, இதனால் அவர் கையில் இருக்கும் பணியில் கவனம் செலுத்த முடியும்.

பின்வரும் சிறிய உதாரணம் வழக்கமான கிளையன்ட் பீன் அமர்வைக் காட்டுகிறது:

IndyClient உடன் Host ஐத் தொடங்குங்கள்:= "zip.pbe.com"; // போர்ட் அழைக்க ஹோஸ்ட்:= 6000; // இணைப்பில் சேவையகத்தை அழைக்க போர்ட்; முயற்சிக்கவும் // உங்கள் குறியீடு இங்கே செல்கிறது இறுதியாக துண்டிக்கவும்; முடிவு; முடிவு;

எடுத்துக்காட்டில், சேவையகத்திற்கான இணைப்பு நிறுவப்படாவிட்டாலும், முயற்சி-இறுதி அறிக்கையைப் பயன்படுத்துவதன் காரணமாக இணைப்பு லாவகமாக நிறுத்தப்படும்.

இண்டியின் சர்வர் கூறுகள் உங்கள் தேவைகள் மற்றும் நீங்கள் பயன்படுத்தும் நெறிமுறையைப் பொறுத்துப் பயன்படுத்தக்கூடிய பல்வேறு சர்வர் மாடல்களை விவரிக்கிறது.

TIdTCPSserver என்பது பொதுவாகப் பயன்படுத்தப்படும் சர்வர் கூறு ஆகும், இது முக்கிய பயன்பாட்டுச் செயல்முறையிலிருந்து சுயாதீனமான இரண்டாம் நிலை செயல்முறையை உருவாக்குகிறது. உருவாக்கப்பட்ட செயல்முறை உள்வரும் கோரிக்கைகளுக்காக காத்திருக்கிறது சாத்தியமான வாடிக்கையாளர்கள். ஒவ்வொரு வாடிக்கையாளருக்கும் ஒரு தனிப்பட்ட இரண்டாம் நிலை செயல்முறை உருவாக்கப்படுகிறது, அதன் கோரிக்கைக்கு அது பதிலளிக்கிறது. பராமரிப்பு செயல்பாட்டின் போது ஏற்படும் நிகழ்வுகள் தொடர்புடைய செயல்முறைகளின் சூழலுடன் தொடர்புடையவை.

வேறு வார்த்தைகளில் கூறுவதானால், ஒவ்வொரு கிளையன்ட் இணைப்புக்கும், TIdTCPSserver வகுப்பு, அந்தத் தொடரின் OnExecute நிகழ்வு ஹேண்ட்லரை அழைப்பதன் மூலம் ஒரு தனித்துவமான இரண்டாம் தொடரைப் பயன்படுத்துகிறது. ஒன்எக்சிக்யூட் முறையின் முறையான அளவுரு என்பது உருவாக்கப்பட்ட த்ரெட்டுடன் தொடர்புடைய அத்ரெட் வகுப்பின் ஒரு நிகழ்வைக் குறிக்கிறது. இந்த வகுப்பின் இணைப்புச் சொத்து என்பது TIdTCPConnection வகுப்பைக் குறிப்பதாகும், இது கிளையன்ட் கோரிக்கையைச் செயல்படுத்த உருவாக்கப்பட்டது. TIdTCPConnection இணைப்பில் வாசிப்பதற்கும் எழுதுவதற்கும் துணைபுரிகிறது, அத்துடன் ஒரு தகவல்தொடர்பு அமர்வை நிறுவுதல் மற்றும் நிறுத்துதல்.

UDP நெறிமுறையானது சேவையகத்துடன் ஒரு இணைப்பை நிறுவாமல் வேலை செய்கிறது (அனுப்பப்பட்ட ஒவ்வொரு பாக்கெட்டும் ஒரு சுயாதீன தரவுத் தொகுப்பாகும், மேலும் ஒரு பெரிய அமர்வு அல்லது இணைப்பின் ஒரு பகுதி அல்ல). TIdTCPServer ஒவ்வொரு இணைப்பிற்கும் தனித்தனி த்ரெட்களை உருவாக்கும் போது, ​​TIdUDPServer ஒரு முக்கிய தொடரிழை அல்லது அனைத்து UDP நெறிமுறை கோரிக்கைகளையும் கையாளும் ஒற்றை இரண்டாம் நூலைப் பயன்படுத்துகிறது. TIdUDPSserver செயலில் இருக்கும்போது, ​​உள்வரும் UDP பாக்கெட்டுகளைக் கேட்க ஒரு நூல் உருவாக்கப்படுகிறது. பெறப்பட்ட ஒவ்வொரு பாக்கெட்டிற்கும், ThreadedEvent சொத்தின் மதிப்பைப் பொறுத்து, முதன்மைத் தொடரிலோ அல்லது கேட்கும் நூலின் பின்னணியிலோ OnUDPRead நிகழ்வு எழுப்பப்படுகிறது. ThreadedEvent False என மதிப்பிடும் போது, ​​நிகழ்வு முக்கிய நூலில் நிகழ்கிறது, இல்லையெனில் அது கேட்கும் நூலில் நிகழ்கிறது. நிகழ்வு செயலாக்கப்படும் போது, ​​பிற சர்வர் செயல்பாடுகள் தடுக்கப்படும். எனவே, OnUDPRead நடைமுறைகள் முடிந்தவரை விரைவாக இயங்குவதை உறுதி செய்வது முக்கியம்.

ஏற்கனவே உள்ள நெறிமுறையைப் பயன்படுத்தி ஏற்கனவே உள்ள சேவையகத்திற்கான புதிய கிளையன்ட் பயன்பாட்டை நீங்கள் உருவாக்க வேண்டும் என்றால், கிளையன்ட் பயன்பாட்டை உருவாக்கி பிழைத்திருத்துவது மட்டுமே உங்கள் வேலை. இருப்பினும், நீங்கள் வாடிக்கையாளர் மற்றும் இரண்டையும் உருவாக்க வேண்டும் சேவையக பயன்பாடுஏற்கனவே உள்ள அல்லது புதிய நெறிமுறையைப் பயன்படுத்தினாலும், கிளாசிக் "கோழி மற்றும் முட்டை" சிக்கலை எதிர்கொள்கிறோம். நிரலாக்கத்தை எங்கு தொடங்குவது - கிளையண்டிலிருந்து அல்லது சேவையகத்திலிருந்து?

வெளிப்படையாக, கிளையன்ட் மற்றும் சர்வர் இரண்டும் இறுதியில் உருவாக்கப்பட வேண்டும். பல பயன்பாடுகளுக்கு, குறிப்பாக உரை அடிப்படையிலான நெறிமுறையைப் பயன்படுத்தும் (HTTP போன்றவை), சேவையகத்தை வடிவமைப்பதன் மூலம் பயன்பாட்டை உருவாக்கத் தொடங்குவது எளிது. பிழைத்திருத்தத்திற்கு ஏற்கனவே இருக்கும் வசதியான கிளையன்ட் உள்ளது. இது டெல்நெட் கன்சோல் பயன்பாடாகும், இது விண்டோஸ் மற்றும் யுனிக்ஸ் இரண்டிலும் கிடைக்கிறது.

நீங்கள் கன்சோலை தட்டச்சு செய்தால் telnet கட்டளை 127.0.0.1 80 உள்ளூர் கணினியின் ஐபி முகவரி மற்றும் போர்ட் எண் 80, இது வலை சேவையகங்களால் இயல்பாகப் பயன்படுத்தப்படுகிறது, பின்னர் பயன்பாடு படத்தில் காட்டப்பட்டுள்ள உரையுடன் பதிலளிக்கும். 6, விண்டோஸ் 2000 ஓஎஸ் மற்றும் ஐஐஎஸ் 5.0.

Indy கூறுகளைப் பயன்படுத்தி எளிமையான சேவையகத்தை உருவாக்க உங்களுக்குத் தேவை:

இணைப்பு துண்டிக்கப்படும்போது அதன் வாடிக்கையாளர்களுக்குச் சரியாகத் தெரிவிக்கும் சேவையகத்தை நீங்கள் வடிவமைக்க வேண்டும் என்றால், அது ஏற்பட்ட பிழைச் சூழ்நிலைகளைப் பற்றிய தகவலையும் அவர்களுக்கு வழங்கும், முயற்சி-இறுதியாக என்பதற்குப் பதிலாக முயற்சி-தவிர அறிக்கையைப் பயன்படுத்தவும் - எடுத்துக்காட்டாக, பின்வரும் எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது:

செயல்முறை TDataModule1.IdTCPServer1Execute(ATthread: IdPeerThread); var s: சரம்; ATthread உடன் தொடங்கவும்.இணைப்பை முயற்சிக்கவும் s:= ReadLn; // சேவையகத்தின் பணியை இங்கே செய்யவும் // விதிவிலக்கு ஏதும் இல்லை என்றால், // சர்வரின் பதிலை எழுதவும் //இறுதியாக துண்டிக்கவும்; முடிவு; முடிவு;

இந்த சிறிய எடுத்துக்காட்டு ஒரு எளிய உரை சேவையகத்தை உருவாக்குவதற்கான படிகளையும், அதை எவ்வாறு பிழைத்திருத்துவது என்பதையும் விளக்குகிறது.

மேலே விவரிக்கப்பட்ட சேவையகம் நவீன விநியோகிக்கப்பட்ட கணினி அமைப்பின் ஒரு பொதுவான எடுத்துக்காட்டு.

பல அடுக்கு பயன்பாடுகளை உருவாக்கும் அம்சங்கள்

சமீபத்தில், கிளையன்ட் கோரிக்கைகளை பூர்த்தி செய்ய பல சேவையகங்கள் அதிகளவில் பயன்படுத்தப்படுகின்றன. இந்த வகை சேவையகம், கிளையன்ட் கோரிக்கையைப் பெற்று, மேலும் செயலாக்கத்திற்கு ஓரளவு தயார் செய்து, மற்றொரு சேவையகத்தைத் தொடர்புகொண்டு, மாற்றப்பட்ட கோரிக்கை அல்லது கோரிக்கைகளை அனுப்புகிறது. இரண்டாம் அடுக்கு சேவையகம் மற்ற சேவையகங்களுடன் தொடர்பு கொள்ள முடியும். எனவே, பல அடுக்கு சர்வர் கட்டமைப்பைப் பற்றி பேசலாம்.

அடுத்து நாம் ஒரு தரவு அணுகல் சேவையகத்தை உருவாக்குவோம், அதன் நோக்கம் தரவுத்தளத்திலிருந்து தரவை திரும்பப் பெறுவதாகும். இருப்பினும், இந்த சேவையகம் தரவுத்தள கோப்புகளை நேரடியாக படிக்கவோ அல்லது எழுதவோ இல்லை. அதற்கு பதிலாக, கிளையண்டிற்குத் தேவையான தரவைத் தேடி தரவுத்தள சேவையகத்துடன் தொடர்பு கொள்கிறது.

எனவே, மூன்று அடுக்கு கட்டமைப்புடன் ஒரு பயன்பாட்டை உருவாக்கத் தொடங்குகிறோம். Indy கூறுகளைப் பயன்படுத்தி ஒரு தரவுத்தள சேவையகத்தை உருவாக்க உங்களுக்குத் தேவை:

  1. புதிய திட்டத்தை உருவாக்கவும்.
  2. வைக்கவும் முக்கிய வடிவம்இண்டி சர்வர்ஸ் பேலட்டில் இருந்து TIdTCPSserver கூறுகளின் திட்ட நிகழ்வு.
  3. TIdTCPServer1 வகுப்பு நிகழ்வின் DefaultPort சொத்தை 6001 ஆக அமைக்கவும் (பல்வேறு பயன்பாடுகளில் போர்ட் எண்களை நகலெடுப்பதைத் தவிர்க்க பெரிய மதிப்புகளை ஒதுக்க பரிந்துரைக்கப்படுகிறது), மேலும் செயலில் உள்ள சொத்தை உண்மையாக அமைக்கவும்.
  4. கோப்பு | என்பதைத் தேர்ந்தெடுப்பதன் மூலம் திட்டத்தில் புதிய தொகுதியைச் சேர்க்கவும் புதிய | தரவு தொகுதி, மற்றும் கூறுகள் தட்டு மீது dbExpress தாவலில் இருந்து SQLC இணைப்பு மற்றும் SQLDataSet கூறுகளின் நிகழ்வுகளை வைக்கவும்.
  5. SQLConnection வகுப்பின் ConnectionName சொத்தை IBLocal எனவும் LoginPromptஐ False எனவும் அமைக்கவும். நீங்கள் Employee.gdb தரவுத்தளத்தில் IBLocal ஐ உள்ளமைக்கவில்லை என்றால், முதலில் இந்த நடைமுறையை முடிக்கவும்.

அனைவருக்கும் வணக்கம்!

அடுத்த வலைத் திட்டத்தை உருவாக்கும் போது, ​​​​பணி எழுந்தது - டெல்பியில் கிளையன்ட் மென்பொருளை செயல்படுத்த, இது POST முறையைப் பயன்படுத்தி சேவையகத்திற்கு தரவை மாற்றும். பயன்பாடு உரையை அனுப்ப வேண்டும் மற்றும் வலை சேவையகத்தில் கோப்புகளை பதிவேற்ற வேண்டும்.

சர்வர் பக்க மொழிகளைப் பயன்படுத்தி அத்தகைய தரவு அனுப்புதலை செயல்படுத்துதல் இணைய மேம்பாடு(எடுத்துக்காட்டாக, PHP) மிகவும் எளிமையானது, ஆனால் சேவையகத்துடன் தொடர்பு கொள்ளும் பயன்பாட்டு அடிப்படையிலான, பல பயனர் மென்பொருளை நீங்கள் எழுத வேண்டும் என்றால், அது இன்னும் கொஞ்சம் சிக்கலானது. டேட்டாபேஸ் மற்றும் FTP வழியாக டெல்பியில் இருந்து சர்வருக்கு நேரடியாக இணைக்கும் முறை இனி தேவையில்லை, ஏனெனில் இது பாதுகாப்பானது அல்ல, நம்பகமானது அல்ல (கடவுச்சொற்களை மாற்றுதல், இணைப்புத் தரவு போன்றவை) மற்றும் கூடுதல் உருவாக்குகிறது. கிளையன்ட் பக்கத்தில் மென்பொருள் பொருந்தக்கூடிய சிக்கல்கள். சிக்கலைத் தீர்க்க, PHP இல் ஸ்கிரிப்ட்களை (சர்வர் பகுதி) எழுத முடிவு செய்தேன், அது உள்வரும் செயல்பாட்டைச் செயல்படுத்தும் POST கோரிக்கைகள்மற்றும் கிளையண்டிற்கு முடிவைத் திருப்பி அனுப்பவும் (டெல்பி பயன்பாடு). இந்த அணுகுமுறையின் நன்மைகள் அனைத்து இணைப்புகளும் தரவு செயலாக்கமும் சர்வரில் நிகழ்கின்றன, இது நேரடி "இணைப்பை" விட மிகவும் பாதுகாப்பானது.

நான் கூகிள் செய்யத் தொடங்கியபோது, ​​பல சிதறிய தகவல்கள் கைவிடப்பட்டன, பெரும்பாலும் மன்றங்களில், ஆனால் அவை அனைத்தும் துண்டுகளாக இருந்தன. Indy பயன்படுத்தப்படும் என்பது உறுதியாக இருந்தது, அதாவது POST முறை செயல்படுத்தப்பட்ட IdHTTP கூறு. உண்மையில், எல்லாம் எளிது, இந்த முறைஒரு ஆதாரத்தின் Url மற்றும் DataStream (தரவு ஸ்ட்ரீம்) ஆகிய இரண்டு அளவுருக்களை எடுத்து, முடிவை உரை வடிவத்தில் வழங்குகிறது (அது பக்கத்தின் HTML குறியீடாகவும் இருக்கலாம்). முக்கிய விஷயம் டேட்டாஸ்ட்ரீமின் சரியான உருவாக்கம் (பரப்பப்பட்ட தரவு ஸ்ட்ரீம்), ஆனால் வழியில் கூடுதல் ஆபத்துகள் வெளிப்பட்டன, அதாவது ரஷ்ய குறியாக்கம் (அது நன்றாக இல்லை என்றால்). இணையத்தில் பல மணிநேரம் அலைந்து திரிந்த வேடிக்கை இங்குதான் தொடங்கியது. பொதுவாக, போதுமான உரையாடல், மென்பொருளை நடைமுறைப்படுத்துவதற்கும் செயல்படுத்துவதற்கும் செல்லலாம்.

எனவே நிரல் எளிமையானது. அவர் POST முறையைப் பயன்படுத்தி சேவையகத்திற்கு தரவை அனுப்ப வேண்டும், அதில் உள்ள தரவு " தலைப்பு "(வரி)," விளக்கம் » ( பல வரி உரை) மற்றும் வரைகலை கோப்பு(jpg,png, gif-பைனரி தரவு). சேவையகம் இந்தத் தரவை ஏற்க வேண்டும், அதைச் செயலாக்க வேண்டும், சர்வரில் கிராஃபிக் கோப்பைச் சேமித்து பதிலை அளிக்க வேண்டும். மறுமொழியாக, டெல்பியை பயன்பாட்டிற்குத் திருப்பி விடுவோம், அதே உரையை மட்டுமே சேர்க்கப்பட்ட லேபிள்கள் மற்றும் பதிவிறக்கம் செய்யப்பட்ட கோப்பிற்கான இணைப்பு. வேறொன்றுமில்லை.

சேவையகப் பகுதியை (தளத்தின் API போன்றது) செயல்படுத்துவதைத் தொடங்குவோம். எதையும் திறக்கவும் உரை திருத்தி(நோட்பேட்) மற்றும் அதில் பின்வரும் குறியீட்டை எழுதவும்:

"; ) வேறு ( எதிரொலி "தலைப்பு: காணவில்லை"."
"; ) //(!காலி($_POST["உள்ளடக்கம்"]))( எதிரொலி "உள்ளடக்கம்: ".$_POST["உள்ளடக்கம்"]."
"; ) வேறு ( எதிரொலி "உள்ளடக்கம்: காணவில்லை"."
"; ) //(!காலி($_FILES["கோப்பு"]))) ($finfo = pathinfo($_FILES["file"]["name") என்றால் இணைக்கப்பட்ட கோப்பு "கோப்பு" உள்ளதா என உள்வரும் தரவைச் சரிபார்க்கவும். ]); )==0)( எதிரொலி ">>>>>>>தவறான கோப்பு வகை<<<<<<<<"; exit; //Если не допустим тип, полностью останавливаем скрипт } $fname = "files/" . "testimgfile." . $finfo["extension"]; //формируем путь и новое имя файла move_uploaded_file($_FILES["file"]["tmp_name"],$fname);//сохраняем временный файл "tmp_name" в файл $fname echo "http://".$_SERVER["HTTP_HOST"]."/".$fname; //возвращаем полный путь к файлу } ?>

குறிப்பு! (நோட்பேட் வழியாக) சேமிக்கும் போது, ​​"UTF-8" குறியாக்கத்தை நீங்கள் குறிப்பிட வேண்டும், இல்லையெனில் சிரிலிக் எழுத்துக்களைக் காண்பிப்பதில் சிக்கல்கள் இருக்கும்!

ஸ்கிரிப்ட் விரிவான கருத்துக்களை வழங்க முயற்சித்தது. இந்த ஸ்கிரிப்டை உங்கள் இணைய சேவையகத்திற்கு நகலெடுக்கவும், உங்களிடம் ஒன்று இல்லையென்றால், எனது ஸ்கிரிப்டை சோதனைக்கு பயன்படுத்தலாம், அது இங்கு உள்ளது: http://api..php

தளவமைப்பு பின்வரும் கூறுகளைப் பயன்படுத்துகிறது: லேபிள், பட்டன் (2 பிசிக்கள்.), திருத்து (2 பிசிக்கள்.), மெமோ (2 பிசிக்கள்.), செக்பாக்ஸ், ஓபன் டைலாக், ஐடிஎச்டிடிபி. பின்வரும் கூறுகளின் பெயர்களைக் கொடுங்கள் (சொத்து" பெயர்”):

  1. திருத்து (தலைப்பு) - பெயர்=தலைப்பு;
  2. திருத்து (கோப்புக்கான பாதை) பெயர் = imgfile;
  3. குறிப்பு (உள்ளடக்கம்)பெயர் = உள்ளடக்கம்;
  4. குறிப்பு (முடிவு) – பெயர் = பதில்;
  5. பொத்தானை(…) - பெயர் = chkfile;
  6. பொத்தான்(POST) - பெயர் = PostBut;
  7. OpenDialog (கோப்பு தேர்வு உரையாடல்) - பெயர் = PictDialog;

IdHTTP1 மற்றும் CheckBox1 ஐ மாற்றாமல் விடுவோம் (களைப்பாக! :)))).

எனவே தற்செயலாக அல்ல" தொகு» திருத்துவதற்கான பாதை( imgfile), அதன் ReadOnly சொத்தை True என அமைக்கவும். அதேபோல், மணிக்கு imgfileமற்றும் chkfileசெயல்படுத்தப்பட்ட சொத்தை தவறு என அமைக்கவும். செக்பாக்ஸைப் பயன்படுத்தி அவற்றைச் செயல்படுத்துவோம், அதாவது. படத்தைப் பதிவேற்றலாமா வேண்டாமா என்பதைத் தேர்வு செய்வதற்கான வாய்ப்பை நாங்கள் வழங்குவோம்.

OpenDialogக்கு( PictDialog) நீங்கள் வடிகட்டியை (வடிகட்டி சொத்து) பின்வருமாறு அமைக்க வேண்டும்:

உண்மையான காட்சி தயாரிப்பு முடிந்தது! குறியீட்டை தொடங்குவோம்!

திட்டத்தில், Indy -யுடன் சேர்க்கப்பட்டுள்ள வகையைப் பயன்படுத்தி தரவு ஓட்டத்தை உருவாக்குவோம் - TidMultiPartFormDataStream. TStream ஐப் பயன்படுத்தி செயல்படுத்தும் விருப்பங்களை நாங்கள் கண்டாலும், உடன் பணிபுரிந்தோம் TidMultiPartFormDataStream -எளிதாக!

இந்த வகையை எங்கள் திட்டப்பணிக்குக் கிடைக்கச் செய்ய, பின்வரும் நூலகத்தைப் பயன்பாட்டில் சேர்க்க வேண்டும்: IdMultipartFormData.

CheckBox1 க்கு, OnClick நிகழ்வை உருவாக்கவும் (ஒரு பொருளின் மீது சுட்டியை இருமுறை கிளிக் செய்வதன் மூலம்) மற்றும் இந்த நிகழ்வில் பின்வரும் குறியீட்டைச் சேர்க்கவும்:

செயல்முறை TForm1.CheckBox1Click(அனுப்புபவர்: TObject); தொடங்க //கோப்பு பாதை உறுப்புகள் மற்றும் உரையாடல் பொத்தான்களை செயலில் அல்லது செயலிழக்கச் செய்யுங்கள். chkfile.Enabled:=CheckBox1.Checked; முடிவு;

இங்கே நாம் பொருட்களை செயல்படுத்துகிறோம் imgfile மற்றும்chkfileஒரு செக்மார்க் இருப்பதைப் பொறுத்து (செக்பாக்ஸ் சரிபார்க்கப்பட்டால், பொருள்கள் செயலில் இருக்கும்).

இப்போது படத் தேர்வை ஒழுங்கமைப்போம். இதைச் செய்ய, பொத்தானில் OnClick நிகழ்வை உருவாக்கவும் chkfile(பொருளின் மீது இருமுறை கிளிக் செய்வதன் மூலமும்) பின்வருவனவற்றை எழுதவும்:

செயல்முறை TForm1.chkfileClick(அனுப்புபவர்: TObject); PictDialog.Execute என்றால் //உரையாடலைத் திறந்து, imgfile(TEdit) இல் கோப்பிற்கான முழுப் பாதையையும் உள்ளிடவும். பிறகு imgfile.Text:= PictDialog.FileName; முடிவு;

இந்த நிகழ்வு ஒரு படத் தேர்வு உரையாடலைத் தூண்டும் மற்றும் பயனர் கிளிக் செய்தால் " திற", பின்னர் இந்தக் கோப்பிற்கான பாதை சேர்க்கப்படும் imgfile.

இப்போது நாம் இறுதி "POST" பொத்தானுக்கு வருகிறோம். இந்தப் பொத்தானுக்கு OnClick நிகழ்வை உருவாக்கி, பின்வரும் குறியீட்டைச் சேர்க்கவும்:

செயல்முறை TForm1.PostButClick(அனுப்புபவர்: TObject); var dataPost:TIdMultiPartFormDataStream; டேட்டாபோஸ்ட் தொடங்க:=TIdMultiPartFormDataStream.Create; dataPost.AddFormField("title",title.Text,"utf-8").Content Transfer:= "8bit"; dataPost.AddFormField("content",content.Text,"utf-8").ContentTransfer:= "8bit"; CheckBox1.Checked மற்றும் (trim(imgfile.Text)="") என்றால் //கோப்பு தேர்ந்தெடுக்கப்பட்டதா அல்லது தொடங்கவில்லையா என்பதை சோதித்தல் ShowMessage("நீங்கள் ஒரு கிராஃபிக் கோப்பை தேர்ந்தெடுக்க வேண்டும்!"); வெளியேறு; முடிவு; CheckBox1.Checked என்றால் dataPost.AddFile("file",imgfile.Text,""); //கோப்பின் மறுமொழியுடன் ஒரு புலத்தைச் சேர்க்கவும். உரை:= StringReplace(idHTTP1.Post("http://api..php",dataPost),"
",#13#10,); டேட்டாபோஸ்ட்.இலவசம்; முடிவு;

எனவே, வரிசையில் (கருத்துகள் இருந்தாலும்):

டேட்டாபோஸ்ட் - வகை பொருள் TIdMultiPartFormDataStream. பல்வேறு வகையான புலங்களைக் கொண்ட POST கோரிக்கை கட்டமைப்பை உருவாக்க உங்களை அனுமதிக்கிறது.

தரவு இடுகை . AddFormField (" தலைப்பு ", தலைப்பு . உரை ," utf -8 "). உள்ளடக்க பரிமாற்றம் := " 8 பிட் "; - DataPost இல் "title" என்ற புலத்தைச் சேர்க்கிறது, "title.Text" இலிருந்து ஒரு மதிப்பு, அனுப்பப்பட்ட தரவின் குறியாக்கத்தை "utf-8" ஆக அமைக்கிறது (அளவுரு விருப்பமானது, ஆனால் அதன் வெளிப்படையான அறிகுறி இல்லாமல், சிரிலிக் அனுப்பப்படுகிறது கேள்விக்குறிகள் “?”) மற்றும் மிக முக்கியமான முறை "உள்ளடக்க பரிமாற்றம்". இந்த முறை இல்லாமல், தரவு சேவையகத்திற்கு அனுப்பப்படும் " அப்ரகாடப்ரா" அனுப்பும் பக்கத்தில் உள்ள புலத்தின் பெயர் (“தலைப்பு”) ஸ்கிரிப்ட்டில் குறிப்பிடப்பட்டுள்ள பெயருடன் பொருந்த வேண்டும்: $_POST["title"].

தரவு "உள்ளடக்கம்" புலத்திற்கு மாற்றப்பட்டது.

தரவு இடுகை . AddFile (" கோப்பு ", imgfile . உரை ,"") - இந்த வரியுடன் கோப்பிலிருந்து தரவைக் கொண்டு ஸ்ட்ரீமை உருவாக்குகிறோம்.

அவ்வளவுதான், தரவு உருவாக்கப்படுகிறது, எஞ்சியிருப்பது அதை சேவையகத்தில் உள்ள ஸ்கிரிப்ட்டுக்கு மாற்றி பதிலைப் பெறுவதுதான்:

response.Text:= StringReplace(idHTTP1.Post("http://api..php",dataPost),"
",#13#10,);

ஏனெனில் வரி முறிவு குறிச்சொல்லை TMemo புரிந்து கொள்ளவில்லை "
", "#13#10" என்ற புரிந்துகொள்ளக்கூடிய வரி முறிவுகளுடன் மாற்ற " " செயல்பாட்டைப் பயன்படுத்துவோம்.

எல்லாம் முடிந்ததும், டேட்டாபோஸ்ட் பொருளிலிருந்து நினைவகத்தை இந்த வரியுடன் அழிக்கவும்:

டேட்டாபோஸ்ட்.இலவசம்;

எங்கள் எடுத்துக்காட்டில், செயல்முறையின் முடிவில் இது தானாகவே நடக்கும், ஆனால் இன்னும் ...

திரையில் நிரலின் உண்மையான முடிவு:

எனவே, நாம் விரும்பும் அளவுக்கு தரவு அல்லது கோப்புகளை சேவையகத்திற்கு அனுப்பலாம், இந்த தரவை சேவையகத்தில் செயலாக்கலாம் மற்றும் ஸ்கிரிப்ட்டின் முடிவை பயன்பாட்டிற்குத் தெரிவிக்கலாம். இது 0 அல்லது 1 ஆகக் கூட இருக்கலாம், இது பயன்பாட்டை மேலும் செயல்படச் செய்யும்.

அனைத்து. அனைவருக்கும் நல்வாழ்த்துக்கள். தகவல் பயனுள்ளதாக இருந்தது என்று நம்புகிறேன், நீங்கள் அதைப் பயன்படுத்துவீர்கள்.

முடிக்கப்பட்ட எடுத்துக்காட்டு மற்றும் ஸ்கிரிப்டை நீங்கள் பதிவிறக்கலாம்.

முழு தொகுதி குறியீடு:

யூனிட் போஸ்ட்யூனிட்; இடைமுகம் Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent, IdPComponent, IdPCPComponent, IdPCPCPCoponent IdHTTP, IdMultipartFormData, Vcl.ExtDlgs; வகை TForm1 = class(TForm) IdHTTP1: TIdHTTP; தலைப்பு: TEdit; உள்ளடக்கம்: TMemo; PostBut: TButton; பதில்: TMemo; Label1: TLabel; Label2: TLabel; Label3: TLabel; imgfile:TEdit; chkfile: TButton; Label4: TLabel; செக்பாக்ஸ்1: டிசெக்பாக்ஸ்; PictDialog:TOpenDialog; செயல்முறை PostButClick(அனுப்புபவர்: TObject); செயல்முறை chkfileClick(அனுப்புபவர்: TObject); செயல்முறை CheckBox1Click (அனுப்புபவர்: TObject); தனிப்பட்ட (தனியார் அறிவிப்புகள்) பொது (பொது அறிவிப்புகள்) முடிவு; var படிவம்1: TForm1; செயல்படுத்தல் ($R *.dfm) செயல்முறை TForm1.CheckBox1Click(அனுப்புபவர்: TObject); தொடங்க //கோப்பு பாதை உறுப்புகள் மற்றும் உரையாடல் பொத்தான்களை செயலில் அல்லது செயலிழக்கச் செய்யுங்கள். chkfile.Enabled:=CheckBox1.Checked; முடிவு; செயல்முறை TForm1.chkfileClick(அனுப்புபவர்: TObject); PictDialog.Execute என்றால் //உரையாடலைத் திறந்து, imgfile(TEdit) இல் கோப்பிற்கான முழுப் பாதையையும் உள்ளிடவும். பிறகு imgfile.Text:= PictDialog.FileName; முடிவு; செயல்முறை TForm1.PostButClick(அனுப்புபவர்: TObject); var dataPost:TIdMultiPartFormDataStream; டேட்டாபோஸ்ட் தொடங்க:=TIdMultiPartFormDataStream.Create; dataPost.AddFormField("title",title.Text,"utf-8").Content Transfer:= "8bit"; dataPost.AddFormField("content",content.Text,"utf-8").ContentTransfer:= "8bit"; CheckBox1.Checked மற்றும் (trim(imgfile.Text)="") என்றால் //கோப்பு தேர்ந்தெடுக்கப்பட்டதா அல்லது தொடங்கவில்லையா என்பதை சோதித்தல் ShowMessage("நீங்கள் ஒரு கிராஃபிக் கோப்பை தேர்ந்தெடுக்க வேண்டும்!"); வெளியேறு; முடிவு; CheckBox1.Checked என்றால் dataPost.AddFile("file",imgfile.Text,""); //கோப்பின் மறுமொழியுடன் ஒரு புலத்தைச் சேர்க்கவும். உரை:= StringReplace(idHTTP1.Post("http://api..php",dataPost),"
",#13#10,); டேட்டாபோஸ்ட்.இலவசம்; முடிவு; முடிவு.