Day015 學習筆記

2021-09-29 06:03:59 字數 2996 閱讀 3663

建立socket:

該函式帶有兩個引數(引數必須寫):

a. af_inet(ipv4協議⽤於 internet 程序間通訊)

b. 套接字型別, 可以是 sock_stream(流式套接字, ⽤於tcp 協議) 或者 sock_dgram(資料報套接字, ⽤於 udp 協議)

tcp慢但是穩定不會丟資料

udp快但是可能會丟資料(黑客攻擊)

確定了ip位址埠號(ipv4協議),tcp或udp協議之後,計算機之間可以進行通訊

""" udp傳送資料 """

from

socket

import

*# 匯入套接字模組s=

socket

(af_inet

,sock_dgram

)#建立套接字

addr=(

"192.168.42.44"

,8080

)# 用於接收資料的ip位址,埠號

data

=input

("請輸入要傳送的內容:")s

.sendto

(data

.encode

("gb2312"

),addr

)# data.encode("gb2312"),data的資料轉換為網路除錯助手能識別的編碼方式s.

sendto(b

"abcd"

,addr

)"""

傳送資料時,python3需要將字串轉成byte

encode(『utf-8』) # 用utf-8對資料進行編碼,獲得bytes型別物件

decode()反過來

"""redata=s

.recvfrom

(1024

)# 引數 1024 代表本次接收能接收到的最大資料的位元組數

print

(redata[0

].decode

("gb2312"

))# redata[0]代表接收到的第乙個資料s.

close

()

from

socket

import*s

=socket

(af_inet

,sock_dgram)s

.bind

((""

,8088))s

.sendto(b

"abc",(

"192.168.42.44"

,8585

))# 對方的位址也是元組表示

#等待接收資料

redata=s

.recvfrom

(1024

)#1024表示本次接收的最大位元組數

print

(redata[0

].decode

())

echo 伺服器: 接受到什麼原封發回

from

socket

import

*udpsock

=socket

(af_inet

,sock_dgram

)udpsock

.bind

((""

,8585

))while

true

:recvdata

=udpsock

.recvfrom

(1024

)udpsock

.sendto

(recvdata[0

],recvdata[1

])udpsock

.close

()

建立聊天室

聊天室 1: 先發後收

from

socket

import

*udpsock

=socket

(af_inet

,sock_dgram

)udpsock

.bind

(("192.168.42.44"

,8581

))while

true

:data

=input

("請輸入:\n"

)udpsock

.sendto

(data

.encode

(),(

"192.168.42.44"

,8580

))recvdata

=udpsock

.recvfrom

(1024

)print

(recvdata[0

].decode

())udpsock

.close

()

聊天室 2: 先收後發

from

socket

import

*udpsock

=socket

(af_inet

,sock_dgram

)udpsock

.bind

(("192.168.42.44"

,8580

))while

true

:recvdata

=udpsock

.recvfrom

(1024

)print

(recvdata[0

].decode

())data

=input

("請輸入:\n"

)udpsock

.sendto

(data

.encode

(),(

"192.168.42.44"

,8581

))udpsock

.close

()

每日練習 Day015

dom 操作怎樣新增 移除 移動 複製 建立和查詢節點?表名 food 欄位名字段描述 資料型別 外來鍵非空 唯一自增 id編號 int是是是 是name 食品公司 varchar 20 是company 生產廠商 varchar 30 是price 單位 圓 float produce time ...

程式設計素養 Day015

dom 操作怎樣新增 移除 替換 插入 建立和查詢節點?1.寫出建立表的 sql 語句 create table food id int primary key not null auto increment,name varchar 20 not null,company varchar 30 n...

程式設計素養Day015

一 dom 操作怎樣新增 移除 替換 插入 建立和查詢節點?二 表名 food 欄位名字段描述 資料型別 外來鍵非空 唯一自增 id編號 int是是是 是name 食品公司 varchar 20 是company 生產廠商 varchar 30 是price 單位 圓 float produce t...