1 什麼是 socket?2 socket又稱"
套接字",應用程式通常通過"
套接字"34
socket()函式
5python 中,我們用 socket()函式來建立套接字,語法格式如下:67
socket.socket([family[, type[, proto]]])8引數
9family: 套接字家族可以使af_unix或者af_inet
10type: 套接字型別可以根據是面向連線的還是非連線分為sock_stream或sock_dgram
11protocol: 一般不填預設為0.
1213
1415
import socket
16from
datetime import datetime
17# 服務端
18 sk=socket.socket(socket.af_inet,socket.sock_stream)
19 host=socket.gethostname() #獲取主機名稱
20 port=9999
21# 繫結位址(host,port)到套接字, 在af_inet下,以元組(host,port)的形式表示位址。
22sk.bind((host,port))
23# 開始tcp監聽。backlog指定在拒絕連線之前,作業系統可以掛起的最大連線數量。該值至少為1,大部分應用程式設為5就可以了。
24 sk.listen(5)25
while
true:
26# 被動接受tcp客戶端連線, (阻塞式) 等待連線的到來
27 ck,addr=sk.accept()
28 print('
'%str(addr),datetime.now())
29 msg='
'+'\r\n'30
# send() 傳送tcp資料,將string中的資料傳送到連線的套接字。返回值是要傳送的位元組數量,該數量可能小於string的位元組大小。
31 ck.send(msg.encode('
utf-8'))
32ck.close()
3334
3536
37import socket
38import sys
39from
datetime import datetime
4041
# 客戶端
42 s=socket.socket(socket.af_inet,socket.sock_stream)
43 host=socket.gethostname()
44 port=9999
45# 主動初始化tcp伺服器連線。一般address的格式為元組(hostname,port),如果連線出錯,返回socket.error錯誤。
46s.connect((host,port))
47# 接收tcp資料,資料以字串形式返回,bufsize指定要接收的最大資料量。flag提供有關訊息的其他資訊,通常可以忽略。
48 msg=s.recv(1024)49
s.close()
50 print(msg.decode('
utf-8
'),datetime.now())
5152
5354
5556
57import socket
5859 s=socket.socket(socket.af_inet,socket.sock_dgram)
60 s.bind(('
localhost
',10021
))61 print('
udp連線')
62while
true:
63 data,addr=s.recvfrom(1024
)64 print('
收到資料%s:%s.
'%addr)
65 s.sendto(data.decode('
utf-8
').upper().encode(),addr)
6667
6869
import socket
7071 s=socket.socket(socket.af_inet,socket.sock_dgram)
72 addr=('
localhost
',10021)73
while
true:
74 data=input('
請輸入要處理的資料:')
75if not data or data=='
quit':
76break
77s.sendto(data.encode(),addr)
78 recvdata,addr=s.recvfrom(1024
)79 print(recvdata.decode('
utf-8'))
80 s.close()
socket程式設計
一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...
Socket程式設計
對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...
socket程式設計
建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...