tcp連線:雙方必須確定連線後再傳輸資源,傳輸完成後要關閉連線**資源.
socket(套接字)是程序之間的乙個通訊工具,可以說所有網路程式都需要用到
:# 建立tcp客戶端套接字
# 1. af_inet:表示ipv4
# 2. sock_stream: tcp傳輸協議
tcp_client_socket = socket.socket(socket.af_int,socket.sock_stream)
# 和服務端應用程式建立連線
tcp_client_socket.connect(
("127.0.0.1"
,8080))
# **執行到此,說明連線建立成功
# 準備傳送的資料
send_data =
"你好服務端,我是客戶端小黑!"
.encode(
"utf-8"
)# 傳送資料
tcp_client_socket.send(send_data)
# 接收資料, 這次接收的資料最大位元組數是1024
recv_data = tcp_client_socket.recv(
1024
)# 返回的直接是服務端程式傳送的二進位制資料
(recv_data)
# 對資料進行解碼
recv_content = recv_data.decode(
"utf-8"
("接收服務端的資料為:"
, recv_content)
# 關閉套接字
tcp_client_socket.close(
)
if __name__ ==
'__main__'
:# 建立tcp服務端套接字
tcp_server_socket = socket.socket(socket.af_inet, socket.sock_stream)
# 設定埠號復用,讓程式退出埠號立即釋放
tcp_server_socket.setsockopt(socket.sol_socket, socket.so_reuseaddr,
true
)# 給程式繫結埠號
tcp_server_socket.bind((""
,8989))
# 設定監聽
# 不需要讓客戶端進行等待建立連線
# listen後的這個套接字只負責接收客戶端連線請求,不能收發訊息,收發訊息使用返回的這個新套接字來完成
tcp_server_socket.listen(
128)
# 等待客戶端建立連線的請求, 只有客戶端和服務端建立連線成功**才會解阻塞,**才能繼續往下執行
# 1. 專門和客戶端通訊的套接字: service_client_socket
service_client_socket, ip_port = tcp_server_socket.accept(
)# **執行到此說明連線建立成功
print
("客戶端的ip位址和埠號:"
, ip_port)
# 接收客戶端傳送的資料, 這次接收資料的最大位元組數是1024
recv_data = service_client_socket.recv(
1024
)# 獲取資料的長度
recv_data_length =
len(recv_data)
print
("接收資料的長度為:"
, recv_data_length)
# 對二進位制資料進行解碼
recv_content = recv_data.decode(
"gbk"
)print
("接收客戶端的資料為:"
, recv_content)
# 準備傳送的資料
send_data =
"ok, 問題正在處理中..."
.encode(
"gbk"
)# 傳送資料給客戶端
service_client_socket.send(send_data)
# 關閉服務與客戶端的套接字, 終止和客戶端通訊的服務
service_client_socket.close(
)# 關閉服務端的套接字, 終止和客戶端提供建立連線請求的服務
tcp_server_socket.close(
)
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...