Computer network programming: Difference between revisions

Content deleted Content added
Tag: extraneous markup
m Undid edits by 87.251.25.103 (talk) to last version by AnnaBSP
 
(34 intermediate revisions by 24 users not shown)
Line 1:
{{Short description|Writing computer programs with networking capability}}
{{one source|date=June 2013}}
 
{{For|similar terms referring to the hardware technologies committed to computer network programming |Computer network}}
'''Computer network programming''' involves writing [[computer programs]] that enable [[process (computing)|processes]] to communicate with each other across a [[computer network]].
 
'''Computer network programming''' involves writing [[computer programs]] that enable [[process (computing)|processes]] to communicate with each other across a [[computer network]].<ref>{{cite book| url=http://people.scs.carleton.ca/~lanthier/teaching/COMP1406/Notes/COMP1406_Ch12_NetworkProgramming.pdf | archive-url=https://web.archive.org/web/20200305163115/http://people.scs.carleton.ca/~lanthier/teaching/COMP1406/Notes/COMP1406_Ch12_NetworkProgramming.pdf | url-status=dead | archive-date=2020-03-05 | chapter=Chapter 12 - Network Programming | date=2017 | quote=Network Programming involves writing programs that communicate with other programs across a computer network. | title=COMP1406 }}</ref>
<ref><ref></ref></ref>== Connection-oriented and connectionless communications ==
 
<ref><ref></ref></ref>== Connection-oriented and connectionless communications ==
Very generally, most of communications can be divided into connection-oriented, and connectionless. Whether a communication is a connection-oriented, or connectionless, is defined by the communication protocol, and not by [[Application_programming_interface|API]]. Examples of the connection-oriented protocols include TCP and SPX, and examples of connectionless protocols include UDP, "raw IP", and IPX
 
Very generally, most of communications can be divided into [[Connection-oriented_communication|connection-oriented]], and [[Connectionless_communication|connectionless]]. Whether a communication is a connection-oriented, or connectionless, is defined by the [[Communications_protocol|communication protocol]], and not by {{nowr|[[Application_programming_interface|APIapplication programming interface]] (API)}}. Examples of the connection-oriented protocols include {{nowr|[[Transmission Control Protocol]] (TCP)}} and {{nowr|[[Sequenced Packet Exchange]] (SPX)}}, and examples of connectionless protocols include {{nowr|[[User Datagram Protocol]] (UDP)}}, "raw IP", and {{nowr|[[Internetwork Packet Exchange]] (IPX)}}.
 
== Clients and servers ==
{{main|client–server model}}
 
For connection-oriented communications, communication parties usually have different roles. One party is usually waiting for incoming connections; this party is usually referred to as "[[Server_(computing)|server]]". Another party is the one which initiates connection; this party is usually referred to as "[[Client_(computing)|client]]".
 
For connectionless communications, one party ("server") is usually waiting for an incoming packet, and another party ("client") is usually understood as the one which sends an unsolicited [[Network_packet|packet]] to "server".
 
== Popular protocols and APIs ==
 
Network programming traditionally covers different layers of [[OSI_model|OSI/ISO model]] (most of application-level programming belongs to L4 and up). The table below contains some examples of popular protocols belonging to different OSI/ISO layers, and popular APIs for them.
 
{| class="wikitable"
Line 40 ⟶ 43:
|}
 
== ReferencesSee also ==
 
* [[Software-defined networking]]
* W. Richard Stevens: UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X
*[[Infrastructure as code]]
* [[Site reliability engineering]]
* [[DevOps]]
 
== References ==
* W. Richard Stevens: '''[[UNIX Network Programming]]''', Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, {{ISBN |0-13-490012-X}}
 
{{reflist}}
[[Category:Computer networks engineering]]
[[Category:Computer programming]]
[[Category:Inter-process communication]]
[[Category:Computer networks]]