【網路程式設計】tcp伺服器與客戶端
阿新 • • 發佈:2018-12-12
TCP與UDP的區別: TCP傳輸控制協議(穩定)(慢一些) UDP使用者資料包協議(不穩定)(快一些) TCP有三次握手,a給b請求資料,b傳送請求確認併發送一個數據包,a收到資料包再發送確認訊息給b UDP不管是否發到,只是一直在傳送 多個電腦間程序通訊的方式: socket套接字 每建立一個套接字就會動態分配一個埠,每次執行埠都不同 一般接收方埠繫結,傳送方不做要求
from socket import *
udp_socket=socket(AF_INET,SOCK_DGRAM)
UDP廣播
... dest=(<'broadcast'>,7788) s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1) ...
TCP建立伺服器
from socket import *
tcp_socket = socket(AF_INET,SOCK_STREAM)
tcp_socket.bind(("",7788))
tcp_socket.listen(5)
# 在連線之前,這裡會阻塞
sock,ip = tcp_socket.accept()
# 在收到資料之前,這裡會阻塞
recv_data = sock.recv(1024)
tcp_socket.close()
recv_data.close()
TCP客戶端連線伺服器
from socket import * client_socket = socket(AF_INET,SOCK_STREAM) addr=("192.168.209.100",8080) client_socket.connect(addr) client_socket.send("hello".encode("gb2312")) msg = client_socket.recv(1024) print(msg) client_socket.close()