18_TCP服务器端代码案例
一、TCP服务器端代码实例
二、源代码
#1.创建Server-Socket
server_socket = socket(AF_INET,SOCK_STREAM)
#2.绑定一个IP和端口
host_port = ('',8088)
server_socket.bind(host_port)
#3.服务器的Socket监听,listen让Socket处于被动。就可以接收客户端的连接请求
server_socket.listen(5) #5:表示可以监听5个客户端,监听达到5个服务器挂起
#4.等待客户端的连接请求,当前函数是线程阻塞的函数,accept返回两个值,第一个:新的socket
#new_socket相当于server_socket下的子功能
new_socket,client_addr = server_socket.accept()
#完成上述步骤,连接通道已打开,服务徐和客户端都可收发数据,但一般是客户端先发出
#5.服务器接受客户端发过来的数据,recv一般用于TCP协议的接受数据,recvfrom用于UDP
data = new_socket.recv(1024) #data是字节数据
print("服务器端接受的数据是:",data.decode('utf-8'))
#6.服务器端发送数据给客户
new_socket.send('Thank you!'.encode('utf-8'))
#7.关闭套接字
new_socket.close() #new_socket旧意味着当前客户端的服务已经完成
server_socket.close() #整个服务器端全部关闭
19_TCP客户端代码案例
一、代码实例
二、源代码
from socket import *
client_socket = socket(AF_INET,SOCK_STREAM)
#客户端发送连接的请求
#目标服务器的IP和端口号
server_ip_port = ('192.168.43.234',8088)
client_socket.connect(server_ip_port)
send_data = input("请输入:")
client_socket.send(send_data.encode('utf-8'))
#接收服务器返回的数据
recv_data = client_socket.recv(1024)
print("客户端接受到的服务器的数据为:",recv_data.decode('utf-8'))
client_socket.close()
三、运行结果
1、客户端发送数据
①发送数据
③收到服务器回复数据
2、服务器接收数据
②接收数据,回复数据