What is Socket programming ?

March 11, 2022 | Samuditha Gunawardane

What is Socket programming ?

Sockets යනු network එකක් හරහා පණිවිඩ යැවීමට භාවිතා කරනු ලබන ක්‍රමවේදයක් වේ. මේ සදහා ලබා දිය හැකි හොදම උදාහරණය වන්නේ ඔබ ඔබේ ISP හරහා අන්තර්ජාලයට සම්බන්ධ වීමයි.

1990දි පමණ අන්තර්ජාලය කරලියට පැමිණීමත් සමග network socket ක්ෂේත්‍රයද වේගයෙන් දියුණු වීම සිදුවුනා. Sockets භාවිතා කරන client server application ද ඉතාමත් වේගයෙන් ජනප්‍රිය වුනා.

Sockets සම්බන්ධ තාක්ෂණික කරුණු විශාල වශයෙන් පවතින නමුත් අද මේ ලිපියෙන් python language භාවිතයෙන් සරල client server application එකක් socket හරහා communicate කරගන්නා ආකාරය විමසා බලමු. Socket programming වලදි අපට හමුවෙන primary socket functions රැසක් පවතිනවා. ඒ අතර පහත දැක්වෙන function බහුලවම භාවිතා වනවා.

.socket()

.bind()

.listen()

.accept()

.connect()

.connect_ex()

.send()

.recv()

.close()


socket connection recieving, accepting, listening වල රටාව පහත රූප සටහන මඟින් පැහැදිලිව හදුනාගත හැකියි.

පලමුව අප විසින් socket එකක් නිර්මාණය කළ යුතු වෙනවා. ඒ සඳහා Python මඟින් අපට ලබා දී ඇති library එක Socket library එක වෙනවා. එය පහත ආකාරයට සිදු කල හැකියි.

Socket එකක් නිර්මාණය කිරීමෙන් පසුව පහත දැක්වෙන function call කල හැකියි.

Server Functions

s.bind()

Host හා Port එක bind කිරීම සිදු කරයි

s.listen()

tcp listener එකක් setup කිරීම හා start කිරීම

s.accept()

client connection එකක් accept කිරීම


Client functions

s.connect()

tcp server connection එකක් ininitiate කිරීම

General functions

s.recv()

tcp message එකක් ලබාගැනීම

s.send()

tcp message එකක් transmit කිරීම

පහත දැක්වෙන්නෙ ඉහත functions යොදාගනිමින් කල ඉතා සරල server හා client script එකක්.

Server Script

Client Script

ඉහත දක්වෙන script වලින් පළමුව server script එක හා දෙවෙනුව client script එක run කිරීමෙන් පසුව පහත ආකාරයේ output එකක් දැකගත හැකියි.

Output - Server | Client

Sockets programming හි භාවිත සහ advanced scripts පිළිබඳව ඉදිරි ලිපි වලින් විමසා බලමු.

මෙම scripts සඳහා source codes අපගේ GitHub පිටුවෙන් ලබාගත හැකියි.

මීට අමතරව network programming සඳහා python මගින් ලබා දී ඇති modules කිහිපයක් පහත දැක්වේ.

Protocol Common function Port No Python module

HTTP Web pages 80 httplib, urllib, xmlrpclib

NNTP Usenet news 119 nntplib

FTP File transfers 20 ftplib, urllib

SMTP Sending email 25 smtplib

POP3 Fetching email 110 poplib

IMAP4 Fetching email 143 imaplib

Telnet Command lines 23 telnetlib

Gopher Document transfers 70 gopherlib, urllib


සටහන - සමුදිත ගුණවර්ධන