python3 TCP協議下的socket

2022-09-07 02:30:16 字數 1677 閱讀 3838

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