伺服器端:
1#author : kelvin2#
date : 2019/1/28 22:10
3from socket import *
4 server=socket.socket(af_inet,sock_stream)
5 server.setsockopt(sol_socket,so_reuseaddr,1) #
解決伺服器重啟時位址被占用的問題
6 server.bind(("
127.0.0.1
",8888))
7 server.listen(5)
8print("
伺服器已經啟動...")
9 conn,addr=server.accept()
10 res=conn.recv(1024).decode("
utf8")
11print("
伺服器:
",res)
12 conn.send("
伺服器收到請求!
".encode())
13conn.close()
14 server.close()
客戶端:
1#author : kelvin2#
date : 2019/1/28 22:10
3import
socket
4 client=socket.socket(socket.af_inet,socket.sock_stream)
5 client.connect(("
127.0.0.1
",8888))
6 client.send("
客戶端請求連線!
".encode())
7 res=client.recv(1024).decode("
utf8")
8print("
客戶端:
",res)
9 client.close()
伺服器端:
1#author : kelvin2#
date : 2019/1/28 22:10
3from socket import *
4 server=socket.socket(af_inet,sock_stream)
5 server.setsockopt(sol_socket,so_reuseaddr,1) #
解決伺服器重啟時位址被占用的問題
6 server.bind(("
127.0.0.1
",8888))
7 server.listen(5)
8print("
伺服器已經啟動...")
9 conn,addr=server.accept()
10while
true:
11 res=conn.recv(1024).decode("
utf8")
12print("
\033[1;36;0m伺服器接收:\033[0m%s
"%res)
13 con=input("
回覆:")14
conn.send(con.encode())
15conn.close()
16 server.close()
客戶端:
1#author : kelvin2#
date : 2019/1/28 22:10
3from socket import *
4 client=socket.socket(af_inet,sock_stream)
5 client.connect(("
127.0.0.1
",8888))
6while
true:
7 con=input("
回覆:")8
client.send(con.encode())
9print("
\033[1;36;0m客戶端:\033[0m%s
" %con)
10 res=client.recv(1024).decode("
utf8")
11print("
\033[1;36;0m伺服器端:\033[0m%s
"%res)
12 client.close()
伺服器端:
1#author : kelvin2#
date : 2019/1/28 22:10
3from socket import *
4 server=socket.socket(af_inet,sock_stream)
5 server.setsockopt(sol_socket,so_reuseaddr,1) #
解決伺服器重啟時位址被占用的問題
6 server.bind(("
127.0.0.1
",8888))
7 server.listen(5)
8while
true:
9print("
伺服器已經啟動...")
10 conn,addr=server.accept()
11while
true:
12try
:13 res=conn.recv(1024).decode("
utf8")
14print("
\033[1;36;0m伺服器接收:\033[0m%s
"%res)
15 con=input("
回覆:")16
conn.send(con.encode())
17except
exception:
18break
19conn.close()
20 server.close()
客戶端1:
1#author : kelvin2#
date : 2019/1/28 22:10
3import
socket
4 client=socket.socket(socket.af_inet,socket.sock_stream)
5 client.connect(("
127.0.0.1
",8888))
6while
true:
7 con=input("
回覆:")8
client.send(con.encode())
9print("
\033[1;36;0m客戶端1:\033[0m%s
" %con)
10 res=client.recv(1024).decode("
utf8")
11print("
\033[1;36;0m伺服器端:\033[0m%s
"%res)
12 client.close()
客戶端2:
1#author : kelvin2#
date : 2019/1/28 22:10
3import
socket
4 client=socket.socket(socket.af_inet,socket.sock_stream)
5 client.connect(("
127.0.0.1
",8888))
6while
true:
7 con=input("
回覆:")8
client.send(con.encode())
9print("
\033[1;36;0m客戶端2:\033[0m%s
" %con)
10 res=client.recv(1024).decode("
utf8")
11print("
\033[1;36;0m伺服器端:\033[0m%s
"%res)
12 client.close()
基於TCP協議的套接字程式設計
socket是應用層與tcp ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。socket模板已經為我們封裝好了,我...
基於TCP協議的套接字程式設計
基於socket通訊的內部演算法,當傳送的訊息為空的時候,接收端不會收到訊息,而傳送端向下執行到recv,兩端出於僵持狀態。所以在傳送端需要有個判斷,如果傳送的為空,則重新輸入傳送內容。socket是應用層與tcp ip協議通訊的中間軟體抽象層,它是一組介面。import socket 買手機 ph...
TCP套接字程式設計
網路程式設計又稱為套接字程式設計,為了與遠端計算機進行資料傳輸,需要連線到網際網路,而程式設計中的 套接字 就是用來連線該網路的工具。它本身具有連線的含義,還可以表示為兩台計算機之間的網路連線。4.呼叫accept函式受理連線請求 基於tcp的服務端 客戶端 tcp伺服器端預設函式呼叫順序 sock...