1. 程式人生 > >26 socket簡單操作

26 socket簡單操作

一.服務端:(互相傳)

#匯入socket模組
import socket
#建立socket物件,建立了一個手機
server = socket.socket()

#給程式設定一個ip地址和埠號,買了個手機卡
ip_port = ('192.168.12.11',8002)

#繫結ip地址和埠,插卡
server.bind(ip_port)

#監聽ip地址和埠,簡稱開機
server.listen()

print('111111')
#等待建立連線, conn是連線通道,addr是客戶端的地址,阻塞程式
conn,addr = server.accept()

print('222222')

#服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(B),1024的意思1024B=1KB
from_client_msg = conn.recv(1024)

print('高旺說:',from_client_msg.decode('utf-8'))

to_client_msg = input('高旺的女朋友說:')

#回覆訊息:通過send方法,引數必須是位元組型別的,
conn.send(to_client_msg.encode('utf-8'))

#關閉通道,關電話,通過close方法
conn.close()
#關閉socket物件,關機
server.close()

客戶端:

#匯入socket
import socket
#建立一個socket物件
client = socket.socket()
#找到服務端的ip地址和埠
server_ip_port = ('192.168.12.11',8002)
#連線服務端的應用程式,通過connect方法,引數是服務端的ip地址和埠,打電話
client.connect(server_ip_port)

to_server_msg = input('高旺說:')
#發訊息,用的send方法,但是呼叫者是client的socket物件
client.send(to_server_msg.encode('utf-8'))

from_server_msg = client.recv(1024)

print('高旺的女朋友說:',from_server_msg.decode('utf-8'))
client.close()

二.服務端(傳給服務端)

#匯入socket模組
import socket
#建立socket物件,建立了一個手機
server = socket.socket()

#給程式設定一個ip地址和埠號,買了個手機卡
ip_port = ('z',8002)

#繫結ip地址和埠,插卡
server.bind(ip_port)

#監聽ip地址和埠,簡稱開機
server.listen()

#等待建立連線, conn是連線通道,addr是客戶端的地址
conn,addr = server.accept()

#服務端通過conn連線通道來收發訊息,通過recv方法,recv裡面的引數是位元組(B),1024的意思1024B=1KB
from_client_msg = conn.recv(1024)

print('高旺說:',from_client_msg.decode('utf-8'))

#回覆訊息:通過send方法,引數必須是位元組型別的,
conn.send('約嗎'.encode('utf-8'))

#關閉通道,關電話,通過close方法
conn.close()
#關閉socket物件,關機
server.close()

客戶端:

#匯入socket
import socket
#建立一個socket物件
client = socket.socket()
#找到服務端的ip地址和埠
server_ip_port = ('192.168.12.11',8002)
#連線服務端的應用程式,通過connect方法,引數是服務端的ip地址和埠,打電話
client.connect(server_ip_port)

#發訊息,用的send方法,但是呼叫者是client的socket物件
client.send('約嗎?'.encode('utf-8'))

from_server_msg = client.recv(1024)

print('高旺的女朋友說:',from_server_msg.decode('utf-8'))
client.close()