<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="it" lang="it">
<head>
<title>Socket (reti)</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="Socket_(reti)"/>
<meta name="wx_page_id" content="41389"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="Socket (reti)" id="wxsec1"><h1 class="pagetitle" id="wx1">Socket (reti)</h1>

<p id="wx2">Nei <a href="/wit/Sistema_operativo" title="Sistema operativo" wx:linktype="known" wx:pagename="Sistema_operativo" wx:page_id="3917" id="wx3">sistemi operativi</a> moderni, un <b id="wx4">socket</b> è un'astrazione software progettata per poter utilizzare delle <a href="/wit/Application_programming_interface" title="Application programming interface" wx:linktype="known" wx:pagename="Application_programming_interface" wx:page_id="12780" id="wx5">API</a> standard e condivise per la trasmissione e la ricezione di dati attraverso una <a href="/wit/Rete_informatica" title="Rete informatica" wx:linktype="known" wx:pagename="Rete_informatica" wx:page_id="1388736" id="wx6">rete</a>. È il punto in cui il codice applicativo di un <a href="/wit/Processo_%28informatica%29" title="Processo (informatica)" wx:linktype="known" wx:pagename="Processo_(informatica)" wx:page_id="27361" id="wx7">processo</a> accede al canale di comunicazione per mezzo di una <a href="/wit/Porta_%28reti%29" title="Porta (reti)" wx:linktype="known" wx:pagename="Porta_(reti)" wx:page_id="41387" id="wx8">porta</a>, ottenendo una comunicazione tra processi che lavorano su due macchine fisicamente separate. Dal punto di vista di un programmatore, un socket è un particolare oggetto sul quale leggere e scrivere i dati da trasmettere o ricevere.</p>

<p id="wx9">Ci sono due tipi fondamentali di socket:</p>

<ul id="wx10">
<li id="wx11">
<p id="wx12">i socket tradizionali su protocollo <a href="/wit/Internet_Protocol" title="Internet Protocol" wx:linktype="known" wx:pagename="Internet_Protocol" wx:page_id="35296" id="wx13">IP</a>, usati in molti sistemi operativi per le comunicazioni attraverso un <a href="/wit/Livello_di_trasporto" title="Livello di trasporto" wx:linktype="known" wx:pagename="Livello_di_trasporto" wx:page_id="116904" id="wx14">protocollo di trasporto</a> (quali <a href="/wit/Transmission_Control_Protocol" title="Transmission Control Protocol" wx:linktype="known" wx:pagename="Transmission_Control_Protocol" wx:page_id="4160" id="wx15">TCP</a> o <a href="/wit/User_Datagram_Protocol" title="User Datagram Protocol" wx:linktype="known" wx:pagename="User_Datagram_Protocol" wx:page_id="25867" id="wx16">UDP</a>);</p>
</li>

<li id="wx17">
<p id="wx18">gli <i id="wx19">Unix domain socket</i> (detti anche <i id="wx20">socket locali</i> o <i id="wx21">socket in dominio Unix</i>), usati nei sistemi operativi <a href="/wit/POSIX" title="POSIX" wx:linktype="known" wx:pagename="POSIX" wx:page_id="106127" id="wx22">POSIX</a> per le comunicazioni tra processi residenti sullo stesso computer.</p>
</li>
</ul>

<p id="wx23">Esistono due tipi di socket su IP:</p>

<ul id="wx24">
<li id="wx25"><b id="wx26">listen</b>
<p id="wx27">, che rappresentano la possibilità di ricevere nuove connessioni. Un socket di questo tipo è identificato dalla terna <a href="/wit/Livello_di_trasporto" title="Livello di trasporto" wx:linktype="known" wx:pagename="Livello_di_trasporto" wx:page_id="116904" id="wx28">protocollo di trasporto</a>, <a href="/wit/Indirizzo_IP" title="Indirizzo IP" wx:linktype="known" wx:pagename="Indirizzo_IP" wx:page_id="39449" id="wx29">indirizzo IP</a> del computer, <a href="/wit/Porta_%28reti%29" title="Porta (reti)" wx:linktype="known" wx:pagename="Porta_(reti)" wx:page_id="41387" id="wx30">numero di porta</a>;</p>
</li>

<li id="wx31"><b id="wx32">established</b>
<p id="wx33">, che rappresentano una particolare connessione attiva. Un socket di questo tipo è identificato dalla quintupla <a href="/wit/Livello_di_trasporto" title="Livello di trasporto" wx:linktype="known" wx:pagename="Livello_di_trasporto" wx:page_id="116904" id="wx34">protocollo di trasporto</a>, <a href="/wit/Indirizzo_IP" title="Indirizzo IP" wx:linktype="known" wx:pagename="Indirizzo_IP" wx:page_id="39449" id="wx35">indirizzo IP</a> sorgente, <a href="/wit/Indirizzo_IP" title="Indirizzo IP" wx:linktype="known" wx:pagename="Indirizzo_IP" wx:page_id="39449" id="wx36">indirizzo IP</a> destinazione, <a href="/wit/Porta_%28reti%29" title="Porta (reti)" wx:linktype="known" wx:pagename="Porta_(reti)" wx:page_id="41387" id="wx37">numero di porta</a> sorgente, <a href="/wit/Porta_%28reti%29" title="Porta (reti)" wx:linktype="known" wx:pagename="Porta_(reti)" wx:page_id="41387" id="wx38">numero di porta</a> destinazione.</p>
</li>
</ul>

<p id="wx39">I socket sono stati introdotti nel <a href="/wit/1983" title="1983" wx:linktype="known" wx:pagename="1983" wx:page_id="4702" id="wx40">1983</a> in <a href="/wit/BSD" title="BSD" wx:linktype="known" wx:pagename="BSD" wx:page_id="11616" id="wx41">BSD</a> e poi sono stati ripresi da praticamente tutti gli altri sistemi operativi. Per questo motivo solitamente le funzioni di programmazione dei socket vengono chiamate <i id="wx42">Berkeley socket API</i>.</p>

<p id="wx43">Per aprire un socket da <a href="/wit/MS-DOS" title="MS-DOS" wx:linktype="known" wx:pagename="MS-DOS" wx:page_id="11247" id="wx44">DOS</a> o da <a href="/wit/Shell_%28informatica%29" title="Shell (informatica)" wx:linktype="known" wx:pagename="Shell_(informatica)" wx:page_id="10801" id="wx45">shell testuale</a> <a href="/wit/Unix" title="Unix" wx:linktype="known" wx:pagename="Unix" wx:page_id="4363" id="wx46">Unix</a> si può utilizzare il comando <a href="/wit/Telnet" title="Telnet" wx:linktype="known" wx:pagename="Telnet" wx:page_id="80786" id="wx47">telnet</a></p>
</wx:section></div>
<div id="wx_categorylinks">
<a href="/wit/index.php?title=Speciale:Categories&amp;article=Socket_%28reti%29" title="Speciale:Categories" wx:linktype="known" wx:pagename="Speciale:Categories" id="wx48">Categoria</a>: <span dir="ltr" id="wx49"><a href="/wit/Categoria:Sistema_operativo" title="Categoria:Sistema operativo" wx:linktype="known" wx:pagename="Categoria:Sistema_operativo" wx:page_id="106199" id="wx50">Sistema operativo</a></span></div>
<div id="wx_languagelinks">
Altre lingue: <a href="http://ar.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="ar:Socket" id="wx51">العربية</a> | <a href="http://de.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="de:Socket" id="wx52">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Internet_socket" class="external" wx:linktype="interwiki" wx:pagename="en:Internet_socket" id="wx53">English</a> | <a href="http://es.wikipedia.org/wiki/Socket_de_Internet" class="external" wx:linktype="interwiki" wx:pagename="es:Socket_de_Internet" id="wx54">Español</a> | <a href="http://eu.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="eu:Socket" id="wx55">Euskara</a> | <a href="http://hr.wikipedia.org/wiki/Internet_socket" class="external" wx:linktype="interwiki" wx:pagename="hr:Internet_socket" id="wx56">Hrvatski</a> | <a href="http://lt.wikipedia.org/wiki/Elektros_lizdas" class="external" wx:linktype="interwiki" wx:pagename="lt:Elektros_lizdas" id="wx57">Lietuvių</a> | <a href="http://nl.wikipedia.org/wiki/Internet_socket" class="external" wx:linktype="interwiki" wx:pagename="nl:Internet_socket" id="wx58">Nederlands</a> | <a href="http://no.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="no:Socket" id="wx59">Norsk (bokmål)</a> | <a href="http://pl.wikipedia.org/wiki/Gniazdo_%28telekomunikacja%29" class="external" wx:linktype="interwiki" wx:pagename="pl:Gniazdo_(telekomunikacja)" id="wx60">Polski</a> | <a href="http://pt.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="pt:Socket" id="wx61">Português</a> | <a href="http://sq.wikipedia.org/wiki/Socket" class="external" wx:linktype="interwiki" wx:pagename="sq:Socket" id="wx62">Shqip</a> | <a href="http://tr.wikipedia.org/wiki/Soket" class="external" wx:linktype="interwiki" wx:pagename="tr:Soket" id="wx63">Türkçe</a></div>
</body>
</html>
