--------------------------------------tcp_server.py--------------------------------------#coding:utf-8
import
socket
server = socket.socket() #
建立socket物件
ip_port = ("
127.0.0.1
", 8001) #
ip位址和埠號
server.bind(ip_port) #
繫結ip位址和埠號
server.listen(2) #
監聽ip位址和埠號
conn, addr = server.accept() #
建立連線通道,接收客戶端的連線, conn為客戶端和服務端的通道,addr為客戶端的ip和埠號
print("
conn:
", conn)
print("
addr:
", addr)
from_client_msg = conn.recv(1024) #
通過通道接收來自客戶端的訊息,最大為1024b,訊息為bytes型別
from_client_msg = from_client_msg.decode("
utf-8")
print("
來自客戶端的訊息:
", from_client_msg)
server_input = input("
>>>:
").strip()
conn.send(server_input.encode(
"utf-8
")) #
通過通道傳送訊息,訊息型別為bytes
conn.close() #
關閉通道
server.close() #
關閉socket連線
--------------------------------------tcp_client.py--------------------------------------
#coding:utf-8
import
socket
client = socket.socket() #
建立socket物件
ip_port = ("
127.0.0.1
", 8001) #
服務端ip和埠號
client.connect(ip_port) #
根據ip和埠號連線服務端
client_input = input("
>>>:
").strip()
client.send(client_input.encode(
"utf-8
")) #
傳送訊息給服務端
from_server_msg = client.recv(1024) #
接收來自服務端的訊息,最大為1024b,資料型別為bytes
print("
來自服務端的訊息:
", from_server_msg.decode("
utf-8"))
client.close()
#關閉連線
python3 tcp黏包情況一
客戶端沒有及時接收緩衝區的包,造成多個包接收 服務端傳送了一段資料,客戶端只收了一小部分,客戶端下次再收的時候還是從緩衝區拿上次遺留的資料,產生粘包 tcp stickybag server.py coding utf 8 import socket import subprocess tcp se...
TCP協議下的recv函式
recv函式 函式原型 int recv socket s,char buf,int len,int flags 功能 不論是客戶還是伺服器應用程式都用recv函式從tcp連線的另一端接收資料。引數一 指定接收端套接字描述符 引數二 指明乙個緩衝區,該緩衝區用來存放recv函式接收到的資料 引數三 ...
基於TCP協議下的socket程式設計
socket tcp ip協議中乙個埠號和乙個ip位址繫結在一起就生成乙個socket就表示了網路中唯一的乙個程序,它是全雙工的工作方式。基於tcp的socket程式設計 函式的使用 1 socket include see notes include int socket int domain,i...