Socket Programming Flashcards
-lnsl -lsocket -lresolv -lxnet
به هنگام كامپايل برنامه هاي تحت شبكه يا سوكت پرگرمينگ در سيستم عامل هاي SunOs و Solaris ميبابست از اين سويچ در انتهاي دستور كامپايل استفاده كرد.
cc -o server server.c -lnsl -lsocket -lresolv -lxnet
include
به هنگام سوكت پرمگرمينگ در ويندوز ميبايست از اين فايل هدر سيستمي به جاي هدر socket.h و ديگر هدر هاي مربوط استفاده كرد.
WSAStartup // WSACleanup
به هنگام سوكت پروگرمينگ در ويندوز و بعد از فراخواني فايل هدر winsock.h ميبايست اين دو تابع را نيز فراخواني كرد.
WSAStartup // WSACleanup
wsock32.lib // winsock32.lib
جهت سوكت پروگرمينگ در C بعد از تعريف فايل هدر winsock.h و همچنين فراخواني تابع WSAStartup ميبايست كتابخانه winsock را به كامپايلر معرفي كرد.
Socket
ساكت در واقع راهي براي صحبت كردن با ديگر برنامه هايي در شبكه و با استفاده از file descriptor هاي استاندارد در يونيكس است.
File Descriptor
همه چيز در يونيكس فايل است حتي ارتباطات شبكه اي از يك عدد صحيح وابسته به يك فايل باز شده روي ديسك و يا هر جاي ممكن ديگري استفاده ميكنند.
اين فايل ميتواند يك ارتباط شبكه اي، يك PIPE , FIFO، ترمينال و يا حتي يك فايل واقعي روي ديسك باشد.
Socket Types
Darpa internet socket
Unix socket
CCITT X.25
Internet socket types
Stream sockets
Datagram sockets
Stream socket
- Two-way connected communication streams
- Error free sockets
- Using IP and TCP
- example: http, telnet
Datagram sockets
- connection-less sockets
- using ip and udp
- example: tftp, bootp
ACK Packets
از پيغام هاي نوع ack براي تصديق دريافت پكت توست پرتكل tcp/ip استفاده ميشود.
Acknowledgment
Send()
از اين تابع براي ارسال ديتا در هنگام استفاده از پروتكل TCP دو سوكت پرگرمينگ استفاده ميشود. عمليات encapsulation و decapsulation توسط پرتكل tcp انجام ميپذيرد.
Sendto()
از اين تابع در هنگام استفاده از پرتكل UDP استفاده ميشود. كپسوله سازي بر عهده برنامه نويس است.
Kernel / Hardware duties
وظيفه آماده سازي لايه transport و لايه internet بر عهده هسته سيستم عامل و يا همان كرنل و وظيفه آماده سازي لايه aceess بر عهده سخت افزار مربوطه و يا همان كارت شبكه ميباشد.
Socket Descriptor
يك توصيف گر ساكت داده اي از نوع int ميباشد.