Cara menggunakan python socket recvfrom


Membuat aplikasi chatting dengan python

Halo teman-teman bertemu lagi dengan oscop kali ini admin oscop akan membahas tentang socket. apa itu socket?
Socket secara singkat dapat diartikan sebagai alat komunikasi bagi komputer baik menggunakan TCP/IP ataupun UDP dan menungkin untuk terjadinya pertukaran data. Untuk lebih jelasnya bisa dicari di goole.
Setelah memberikan keterangan sedikit tentang socket sekarang kita mulai dengan aplikasi python dari sisi server.
Untuk sisi tcp kita membutuhkan
1. mendeklarasikan socket dangan cara socket.socket()
2. mendeklarasikan serverIP dan serverPort
3. melakukan bind dengan cara bind()
4. melakukan listen dengan cara listen()
5. menerima koneksi dari client dengan cara accept()
deklarasi di atas akan berbeda dengan UDP

Server code

import socket #import module socket
#membuat variable baru bernama lis
lis = socket.socket()
#deklarasi serverIP dan port
alamatserver = "0.0.0.0"
portserver = 888
#bind
lis.bind((alamatserver,portserver))
#listen
lis.listen(10)
while True:

ss,addr = lis.accept()
#print alamat client yang telah terhubung
print "client telah terhubung", addr
#membuat looping baruwhile True:#membuat variable baru bernama pesan
pesan = raw_input("masukan pesan anda")
#mengirim pesan kepada client
ss.send(pesan)
#menerima pesan dari client
pesan = ss.recv(1024)
print "pesan dari client",pesan

kita coba aplikasi server dengan menggunakan sudo python server.py
Cara menggunakan python socket recvfrom

tidak terjadi error sekarang kita lanjutkan dengan aplikasi client
Untuk aplikasi client python dan yang kita butuhkan
1. mendeklarasikan socket dengan cara socket.socket()
2. menghubungkankan dengan cara connect()

Client code

import socket #memanggil module socket
#deklarasi socket
lis = socket.socket()
#deklarasi serverIp dan serverport
serverIP = "127.0.0.1"
serverPort = 888
#menghubungkan
lis.connect((serverIP,serverPort))
while True:
#meneriama pesan dari server
pesan = lis.recv(1024)
print "pesan",pesan
#mengirim pesan kepda server
pesan = raw_input("masukan pesan anda :")
lis.send(pesan)

sekarang kita cobe aplikasi client
Cara menggunakan python socket recvfrom

sekarng kita coba keduanya
Cara menggunakan python socket recvfrom

selamat mencoba (y)

Socket juga dikenal sebagai "socket", aplikasi ini biasanya dikeluarkan oleh "socket" untuk permintaan jaringan atau network respon permintaan, sehingga proses antara host atau antara komputer di dapat berkomunikasi.


socket () function

Python, kita menggunakan fungsi socket () untuk membuat socket, sintaks adalah sebagai berikut:

socket.socket([family[, type[, proto]]])

parameter

  • Keluarga: keluarga dapat membuat soket atau AF_INET AF_UNIX
  • Jenis: Jenis Socket dapat koneksi-oriented atau connectionless ke SOCK_STREAM atau SOCK_DGRAM
  • protokol: Umumnya tidak mengisi default ke nol.

Socket objek (built-in) metode

fungsideskripsiServer sokets.bind ()alamat mengikat (host, port) ke soket di AF_INET, dalam bentuk tuple (host, port) menunjukkan alamat.s.listen ()Mulai TCP mendengarkan. backlog ditentukan sebelum menolak koneksi, sistem operasi dapat menangguhkan jumlah maksimum koneksi. Nilai ini setidaknya 1, sebagian besar aplikasi dapat diatur untuk 5.s.accept ()penerimaan pasif koneksi client TCP (blocking) menunggu kedatangansoket kliens.connect ()Aktif menginisialisasi koneksi TCP Server. alamat umum format tupel (hostname, port), jika kesalahan sambungan, kesalahan dikembalikan socket.error.s.connect_ex ()menghubungkan () versi diperpanjang dari fungsi mengembalikan kode kesalahan ketika kesalahan bukan melemparkan pengecualianSocket fungsi kepentingan umums.recv ()Menerima data TCP, data dikembalikan sebagai string, menentukan jumlah maksimum data yang akan diterima BUFSIZE. Memberikan informasi tambahan tentang bendera pesan biasanya dapat diabaikan.s.send ()Mengirim data TCP, mengirimkan data string untuk koneksi soket. Nilai kembali adalah jumlah byte untuk mengirim, jumlah ini mungkin kurang dari string byte.s.sendall ()Lengkap pengiriman data TCP, mengirimkan data TCP lengkap. Ini mengirimkan data string untuk koneksi soket, namun sebelum kembali akan mencoba untuk mengirim semua data. Berhasil kembali ada, kegagalan eksepsi dilemparkan.s.recvform ()Menerima data UDP () mirip dengan recv, tapi nilai kembali (data, alamat). Dimana data adalah string yang berisi data yang diterima, alamat data dikirimkan alamat socket.s.sendto ()Mengirim data UDP, mengirim data ke soket, alamat adalah dalam bentuk (ipaddr, port) tupel ditentukan alamat remote. Nilai kembali adalah jumlah byte yang dikirim.s.close ()Menutup sokets.getpeername ()Mengembalikan koneksi socket alamat remote. Nilai kembali biasanya tuple (ipaddr, port).s.getsockname ()Mengembalikan alamat soket sendiri. Biasanya tuple (ipaddr, port)s.setsockopt (tingkat, OPTNAME, nilai)Mengatur nilai opsi socket yang diberikan.s.getsockopt (tingkat, OPTNAME [.buflen])Nilai kembali dari opsi socket.s.settimeout (timeout)Set batas waktu operasi socket, batas waktu adalah angka floating-point, dalam hitungan detik. Tidak ada nilai menunjukkan tidak ada batas waktu. Umumnya, batas waktu hanya harus membuat satu set socket, karena mereka dapat digunakan untuk mengoperasikan koneksi (seperti connect ())s.gettimeout ()Mengembalikan nilai dari batas waktu saat ini, di detik, jika tidak ada batas waktu yang ditetapkan, kembali ada.s.fileno ()Mengembalikan file descriptor socket.s.setblocking (flag)Jika bendera adalah 0, soket diatur ke mode non-blocking, jika soket ke modus blocking (nilai default). mode non-blocking, jika Anda memanggil recv () tidak menemukan data apapun, atau mengirim () panggilan tidak bisa langsung mengirim data, akan menyebabkan pengecualian socket.error.s.makefile ()Buat dokumen yang relevan sehubungan dengan soket

contoh sederhana

server

Kami menggunakan fungsi socket modulsocket untuk membuat objek socket.objek socket dapat memanggil fungsi-fungsi lainnya untuk mendirikan layanan socket.

Sekarang kita dapat menentukan layanan dengan memanggilmengikat (nama host, port) fungsiport (port).

Selanjutnya, kita sebut menerimametode objek socket. Metode menunggu untuk koneksi klien dan kembali objekkoneksiyang mewakili terhubung ke klien.

Kode lengkap adalah sebagai berikut:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:server.py

import socket               # 导入 socket 模块

s = socket.socket()         # 创建 socket 对象
host = socket.gethostname() # 获取本地主机名
port = 12345                # 设置端口
s.bind((host, port))        # 绑定端口

s.listen(5)                 # 等待客户端连接
while True:
    c, addr = s.accept()     # 建立客户端连接。
    print '连接地址:', addr
    c.send('欢迎访问本教程!')
    c.close()                # 关闭连接

klien

Berikutnya kita menulis klien sederhana untuk menghubungkan ke contoh layanan yang dibuat di atas. nomor port adalah 12345.

socket.connect (hosname, port) metode membuka koneksi TCP ke host untuk porthostnameke penyedia layanan pelabuhan.Setelah terhubung kita dapat mengirim-data dari server, ingat, setelah selesai operasi harus menutup sambungan.

Kode lengkap adalah sebagai berikut:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:client.py

import socket               # 导入 socket 模块

s = socket.socket()         # 创建 socket 对象
host = socket.gethostname() # 获取本地主机名
port = 12345                # 设置端口好

s.connect((host, port))
print s.recv(1024)
s.close()  

Sekarang kita perlu membuka terminal, terminal pertama melakukan berkas server.py:

$ python server.py

Terminal kedua melakukan berkas client.py:

$ python client.py 
欢迎访问本教程!

Ini adalah pertama kami dan kemudian buka terminal, Anda akan melihat informasi berikut adalah output:

Apa yang dimaksud dengan socket address?

Sebuah alamat socket terdiri atas kombinasi sebuah alamat ip dan sebuah nomor port, mirip seperti sebuah koneksi telpon yang memiliki nomor telpon dan nomor ekstensinya. Berdasarkan alamat ini, socket internet mengirim paket data yang masuk ke sebuah proses atau thread aplikasi tujuan.

Apa fungsi socket programming?

Penggunaan socket programming memungkinkan adanya komunikasi antara client dan server. Salah satu contoh sederhana penggunaan socket programming adalah pembuatan program untuk chatting. Program tersebut sebenarnya merupakan bentuk aplikasi berupa komunikasi antara client dan server.

Apa itu bahasa pemrograman Python?

Python adalah bahasa pemrograman yang banyak digunakan dalam aplikasi web, pengembangan perangkat lunak, ilmu data, dan machine learning (ML). Developer menggunakan Python karena efisien dan mudah dipelajari serta dapat dijalankan di berbagai platform.