socket.socket ()
socket.socket ( family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None )
Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΊΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ² family, ΡΠΈΠΏ ΡΠΎΠΊΠ΅ΡΠ° type ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° proto. Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ AF_INET (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), AF_INET6, AF_UNIX, AF_CAN, AF_PACKET ΠΈΠ»ΠΈ AF_RDS. Π’ΠΈΠΏ ΡΠΎΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ SOCK_STREAM (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), SOCK_DGRAM, SOCK_RAW ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ SOCK_
. ΠΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½, ΠΈΠ»ΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ² AF_CAN, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· CAN_RAW, CAN_BCM, CAN_ISOTP ΠΈΠ»ΠΈ CAN_J1939.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ fileno, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ family, type ΠΈ proto Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°. ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ²Π½ΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° family, ΡΠΈΠΏΠ° type ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° proto. ΠΡΠΎ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ socket.getpeername (), Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΡΡΡΡ ΠΠ‘. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ socket.fromfd (), fileno Π²Π΅ΡΠ½Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΠΊΠ΅Ρ, Π° Π½Π΅ Π΅Π³ΠΎ Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π·Π°ΠΊΡΡΡΡ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ socket.close ().
ΠΠ½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Π°ΡΠ΄ΠΈΡΠ° socket.__new__
Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ self, family, type, protocol.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.3: ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ AF_CAN. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ AF_RDS.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.4: ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» CAN_BCM.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.4: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΎΠΊΠ΅Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.7: ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» CAN_ISOTP.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.7: ΠΠΎΠ³Π΄Π° Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ»Π°Π³ΠΈ SOCK_NONBLOCK ΠΈΠ»ΠΈ SOCK_CLOEXEC ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠΈΠΏΡ type, ΠΎΠ½ΠΈ ΠΎΡΠΈΡΠ°ΡΡΡΡ, ΠΈ socket.type Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡ. ΠΠ½ΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² socket ().
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
SOCK_NONBLOCK
, Π½ΠΎ Π΄Π»Ρ sock.type
Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ socket.SOCK_STREAM
.
sock = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM | socket.SOCK_NONBLOCK)
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.9: ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» CAN_J1939.
ΠΡΠΈΠΌΠ΅Ρ
sockobj = socket(AF_INET, SOCK_STREAM)
ΠΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ socket ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° TCP. ΠΠΌΠ΅Π½Π° AF_INET ΠΈ SOCK_STREAM ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ socket; ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠΊΠ΅Ρ TCP/IP", ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΠ²ΡΠ·ΠΈ Π΄Π»Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ, AF_INET ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π°Π΄ΡΠ΅ΡΠΎΠ² IP, Π° SOCK_STREAM ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ TCP. ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ AF_INET/SOCK_STREAM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΠΏΠΈΡΠ½ΠΎΠΉ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π½ΠΎ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠΊΠ΅ΡΡ UDP Π±Π΅Π· Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ SOCK_DGRAM) ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ UNIX Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ AF_UNIX).
Last updated
Was this helpful?