1. 程式人生 > >【網路程式設計】tcp伺服器與客戶端

【網路程式設計】tcp伺服器與客戶端

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()