python:Socket编程(三):tcp三次握手四次挥手(简单举例编程:服务器、客户端)

python:Socket编程(三):tcp三次握手四次挥手(简单举例编程:服务器、客户端)

举例:服务端程序:

# socket简单编写:服务端    客户端
#服务端
import socket  # 导入 socket模块
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET  :表示基于网络
# socket.SOCK_STREAM:表示基于TCP协议
serv.bind(("127.0.0.1", 8000))
# bind(ip地址,端口号---》元祖的形式):绑定在那个计算机上作为服务器
serv.listen(5)
# listen(n):表示同时接待5个链接,n:控制backlog、即:半链接池;
conn, addr = serv.accept()
# serv.accept():表示接收到客户端的请求信息,
# 此时,服务端会收到:一个tcp链接、客户端ip地址,以元祖形式
#--------------上面完成三次握手---------------------------
msg = conn.recv(1024)
#conn.recv(1024):从链接中接受客户端发的内容,1024表示大小
print("客户的请求信息:", msg)
conn.send(msg.upper())
#收到客户的请求信息内容后,send:再回复客户端一个内容,内容不一定是msg.upper()
#这里只是简单举例
#--------------上面完成数据传输-----------------------------
conn.close()
#关闭链接
serv.close()
#关闭服务

客户端程序:

# socket简单编写:服务端    客户端
#客户端
import socket# 导入 socket模块
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# socket.AF_INET  :表示基于网络
# socket.SOCK_STREAM:表示基于TCP协议
client.connect(("127.0.0.1",8000))
#connect((服务器的IP,端口号)):表示连接服务器
#--------------上面完成三次握手---------------------------
client.send("hello".encode("utf-8"))
#连接上服务器后,send():向服务器发送,内容必须是二进制
data=client.recv(1024)
#recv(1024)客户端接受服务端回复的内容
#--------------上面完成数据传输-----------------------------
print(data)