Anda di halaman 1dari 12

Socket Programming with TCP

Gambar 2,6-1: Proses berkomunikasi melalui soket TCP


Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum

Soket untuk server dan klien


Server Menyambut soket Menyambut beberapa kontak awal dari klien. Sambungan soket Dibuat pada kontak awal klien. Socket baru yang didedikasikan untuk klien tertentu. Klien Klien soket Memulai sebuah koneksi TCP ke server dengan membuat objek soket. (Three-way handshake) Tentukan alamat proses server, yaitu alamat IP dari server dan nomor port dari proses

Fungsi pemanggilan Socket


socket (): Buat soket bind (): bind socket ke alamat IP lokal dan port # listen (): pasif menunggu koneksi connect (): memulai sambungan ke soket lain reciev (): menerima koneksi baru write (): write data ke socket read (): membaca data dari socket sendto (): mengirimkan datagram UDP lain soket recvfrom (): membaca sebuah datagram dari UDP socket close (): menutup sebuah soket (sambungan meruntuskan)

Sockets

Gambar 2,6-2: Klien soket, menyambut dan sambungan soket soket

Layanan TCP : transfer byte stream yang dapat diandalkan


socket( ) client bind( ) connect( ) TCP conn. request accept( ) send( TCP ACK ) recv( ) recv( ) close( )
controlled by application developer

socket( ) server bind( ) listen( )

send( close( ) ) process socket TCP with buffers, variables

controlled by operating system

process socket TCP with buffers, variables

internet

Program Socket denganTCP


keyboard monitor

Contoh aplikasi client-server app:


klien baris membaca dari standard input (inFromUser streaming), mengirim ke server melalui soket (outToServer streaming) server membaca baris dari soket baris
input stream
in F ro m U s e r

Client Process process


output stream: sequence of bytes out of process
output stream

Input stream: sequence of bytes into process


in F ro m S erv e r

o u t T oS e rv e r

server mengkonversi huruf besar, mengirim kembali ke klien


klien membaca, cetakan diubah garis dari socket (inFromServer streaming)

input stream

client TCP clientSocket TCP socket socket


to network from network

Client/server socket interaction: TCP


Server (running on hostid)
create socket, port=x, for incoming request: welcomeSocket = ServerSocket() wait for incoming connection request connectionSocket = welcomeSocket.accept() read request from connectionSocket write reply to connectionSocket close connectionSocket

Client

TCP create socket, connect to hostid, port=x connection setup clientSocket =


Socket() send request using clientSocket

read reply from clientSocket close clientSocket

JAVA TCP Sockets In Package java.net java.net.Socket


Klien mengimplementasikan socket (juga disebut hanya socket). Sebuah endpoint untuk komunikasi antara dua mesin Constructor dan Metode Socket (String host, int port):
Membuat sebuah stream socket dan menghubungkan ke nomor port tertentu pada nama host InputStream getInputStream () OutputStream getOutputStream () Close()

java.net.ServerSocket
Server mengimplementasikan socket. Menunggu permintaan datang melalui jaringan. Menjalankan beberapa operasi berdasarkan permintaan.
Constructor dan Metode ServerSocket (int port) Socket Accept(): Mendengarkan untuk sambungan dibuat untuk soket ini dan menerima hal itu. Metode ini blok sampai sambungan dibuat.

TCPClient.java

import java.io.*; import java.net.*;


class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

Socket clientSocket = new Socket("hostname", 6789);


DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

TCPClient.java
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } }

TCPServer.java
import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789);

while(true) {
Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

TCPServer.java
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence); } } }

Anda mungkin juga menyukai