Pertemuan%203%20ELEMENTARY%20TCP%20SOCKETS - PowerPoint PPT Presentation

About This Presentation
Title:

Pertemuan%203%20ELEMENTARY%20TCP%20SOCKETS

Description:

Title: Judul Author: Debby Tanamal Last modified by: KBI-TI Created Date: 4/16/2005 3:08:17 AM Document presentation format: On-screen Show Company – PowerPoint PPT presentation

Number of Views:103
Avg rating:3.0/5.0
Slides: 21
Provided by: Debby186
Category:

less

Transcript and Presenter's Notes

Title: Pertemuan%203%20ELEMENTARY%20TCP%20SOCKETS


1
Pertemuan 3ELEMENTARY TCP SOCKETS
  • Matakuliah H0483 / Network Programming
  • Tahun 2005
  • Versi 1.0

2
Learning Outcomes
  • Pada akhir pertemuan ini, diharapkan mahasiswa
  • akan mampu
  • menjelaskan fungsi / system call yang
    berhubungan dengan Sockets pada Unix, Linux

3
Outline Materi
  • Socket function
  • Connect function
  • Bind function
  • Listen function
  • Accept function
  • Fork and exec function

4
ELEMENTARY TCP SOCKETS
  • ELEMENTARY TCP SOCKETS
  • Creating a passive mode (server) socket.
  • Establishing an application-level connection.
  • send/receive data.
  • Terminating a connection.
  • Creating a TCP Socket
  • Function Prototype
  • int socket(int family,int type,int proto)
  • Contoh

5
ELEMENTARY TCP SOCKETS
int sock sock socket(AF_INET,
SOCK_STREAM,0) if(sock lt 0) / ERROR /
6
ELEMENTARY TCP SOCKETS
  • Socket() Function
  • Untuk dpt mengakses I/O Network, maka proses
    harus memanggil fungsi socket()
  • include ltsys/socket.hgt
  • int socket(int family, int type, int protocol)
  • Fungsi socket akan mengembalikan non-negatip
    descriptor jika sukses, dan akan mengembalikan 1
    jika ada error.
  • Umumnya parameter protocol pada fungsi socket di
    set 0 (protocol yg digunakan sesuai tabel, lihat
    kuliah sebelumnya), kecuali untuk raw socket.

7
ELEMENTARY TCP SOCKETS
8
ELEMENTARY TCP SOCKETS
  • Fungsi Connect()
  • Fungsi connect() digunakan oleh fungsi client
    untuk melakukan koneksi dengan TCP Server.
  • include ltsys/socket.hgt
  • int connect (int sockfd, const struct
  • sockaddr servaddr, socklen_t addrlen)
  • sockfd adalah TCP Socket yang sudah di-create
    sebelumnya.
  • servaddr berisi address server(IP Address and TCP
    port number)
  • connect() returns 0 if OK, -1 on error

9
ELEMENTARY TCP SOCKETS
  • Fungsi bind()
  • Fungsi bind() digunakan untuk memberikan alamat
    (IP dan Nomor Port) yg ada pada sockaddr
    structure ke socket descriptor.
  • include ltsys/socket.hgt
  • int bind( int sockfd,
  • const struct sockaddr myaddr,
  • int addrlen)
  • Fungsi bind() mengembalikan nilai 0 jika sukses,
    atau -1 jika terjadi error.
  • Contoh

10
ELEMENTARY TCP SOCKETS
  • Contoh
  • int mysock,err
  • struct sockaddr_in myaddr
  • mysock socket(AF_INET,SOCK_STREAM,0)
  • myaddr.sin_family AF_INET
  • myaddr.sin_port htons(80)
  • myaddr.sin_addr htonl(ipaddress)
  • errbind(mysock, (sockaddr ) myaddr,
    sizeof(myaddr))

11
ELEMENTARY TCP SOCKETS
  • Penggunaan fungsi bind()
  • Server dapat menggunakan fungsi bind(), untuk
    well known port atau specific port.
  • Fungsi listen()
  • include ltsys/socket.hgt
  • int listen( int sockfd, int backlog)
  • sockfd adalah TCP socket (sudah diikat / bind ke
    suatu address)
  • backlog adalah jumlah incoming connections yg
    disimpan dalam antrian / queue.
  • listen() returns -1 jika terjadi error atau 0
    jika sukses.

12
ELEMENTARY TCP SOCKETS
  • Fungsi Accept()
  • Once we call listen(), the O.S. will queue
    incoming connections
  • Handles the 3-way handshake
  • Queues up multiple connections.
  • When our application is ready to handle a new
    connection, we need to ask the O.S. for the next
    connection.

13
ELEMENTARY TCP SOCKETS
  • include ltsys/socket.hgt
  • int accept( int sockfd,struct sockaddr cliaddr,
    socklen_t addrlen)
  • sockfd adalah TCP socket yang sudah dicreate
    sebelumnya.
  • cliaddr is a pointer to allocated space.
  • addrlen is a value-result argument
  • must be set to the size of cliaddr

14
ELEMENTARY TCP SOCKETS
15
ELEMENTARY TCP SOCKETS
16
ELEMENTARY TCP SOCKETS
Fungsi read(), write() Contoh n read(sockfd,
buf, MAXLINE) write(sockfd, buff,
strlen(buff)) Fungsi send(), recv() Sintak
include ltsys/types.hgt include
ltsys/socket.hgt ssize_t send(int s, const void
msg, size_t len, int flags) ssize_t recv(int
s, void buf, size_t len, int flags)
17
ELEMENTARY TCP SOCKETS
  • send() digunakan untuk mengirim message ke
    socket yang lain.
  • send() hanya bisa digunakan bila socket sudah
    dalam mode terkoneksi dengan socket yang lainnya.
  • recv() digunakan untuk menerima message dari
    socket yang lain.
  • recv() hanya bisa digunakan bila socket sudah
    dalam mode terkoneksi dengan socket yang lainnya.

18
ELEMENTARY TCP SOCKETS
  • Fungsi sendto(), recvfrom
  • Sintak
  • include ltsys/types.hgt
  • include ltsys/socket.hgt
  • ssize_t sendto(int s, const void msg, size_t
    len, int flags, const struct sockaddr to,
    socklen_t tolen)
  • ssize_t recvfrom(int s, void buf, size_t len,
    int flags, struct sock-addr from, socklen_t
    fromlen)
  • sendto() digunakan untuk mengirim message ke
    socket,
  • yang sudah ter-koneksi atau belum.

19
ELEMENTARY TCP SOCKETS
  • recvfrom() digunakan untuk menerima message dari
    socket, yang sudah ter-koneksi atau belum.
  • Contoh Program
  • Program Client Server dengan VC
  • Program Climet Server pada Linux

20
ltlt CLOSINGgtgt
  • Kerjakan Tugas seperti yang ada di MCL
Write a Comment
User Comments (0)
About PowerShow.com