網路程式設計socket

2021-10-01 11:03:46 字數 2398 閱讀 8105

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

)# 返回的直接是服務端程式傳送的二進位制資料

print

(recv_data)

# 對資料進行解碼

recv_content = recv_data.decode(

"utf-8"

)print

("接收服務端的資料為:"

, 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...