婚庆公司网站php源码,怎么注册公司需要什么手续,sketch代替ps做网站,个人网站需不需要搭建服务器一、TCP客户端及服务器端开发实践
1、TCP网络应用程序开发分类
① TCP客户端应用程序开发
② TCP服务器端应用程序开发
客户端程序是指运行在用户设备上的程序#xff0c;服务端程序是指运行在服务器设备上的程序#xff0c;专门为客户端提供数据服务。那如何记忆呢…一、TCP客户端及服务器端开发实践
1、TCP网络应用程序开发分类
① TCP客户端应用程序开发
② TCP服务器端应用程序开发
客户端程序是指运行在用户设备上的程序服务端程序是指运行在服务器设备上的程序专门为客户端提供数据服务。那如何记忆呢 主动发起建立连接请求的是客户端程序等待接受连接请求的是服务端程序。 2、TCP客户端程序开发流程及应用实践五步走
开发流程介绍 socket类的介绍
① 导入socket模块
import socket
② 创建客户端socket对象使用socket类
socket.socket(AddressFamily, Type)
客户端socket类的参数和方法说明
参数名说明AddressFamilyIP地址类型, 分为IPv4和IPv6Type传输协议类型
开发客户端需要使用的函数 TCP客户端程序开发实践
import socketif __name__ __main__:# 1、创建客户端套接字对象tcp_client_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、和服务器端套接字建立连接(参数必须是一个元祖)tcp_client_socket.connect((192.168.31.181, 8080))# 3、发送数据tcp_client_socket.send(hell, itheima.encode(encodingutf-8))# 4、接收数据recv_data tcp_client_socket.recv(1024).decode(utf-8)print(recv_data)# 5、关闭客户端套接字tcp_client_socket.close()
3、TCP服务器端开发流程及应用实践七步走
服务器端
开发流程介绍 socket类的介绍
① 导入socket模块
import socket
② 创建客户端socket对象使用socket类
socket.socket(AddressFamily, Type)
客户端socket类的参数和方法说明
参数名说明AddressFamilyIP地址类型, 分为TPv4和IPv6Type传输协议类型
开发客户端需要使用的函数
① 导入socket模块
import socket
② 创建服务器端socket对象使用socket类
socket.socket(AddressFamily, Type)
客户端socket类的参数和方法说明
参数名说明AddressFamilyIP地址类型, 分为TPv4和IPv6Type传输协议类型
开发服务器端需要使用的函数
方法名说明bind绑定IP地址和端口号listen设置监听accept等待接受客户端的连接请求send发送数据recv接收数据 TCP服务器端程序开发实践
import socketif __name__ __main__:# 1、创建服务器端套接字对象tcp_server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、绑定IP地址与端口号tcp_server_socket.bind((, 8888))# 3、开启监听tcp_server_socket.listen(128)# 4、等待接收客户端连接请求conn_socket, ip_port tcp_server_socket.accept()print(客户端IP端口, ip_port)# 5、接收数据recv_data conn_socket.recv(1024)print(接收到的数据, recv_data.decode())# 6、发送数据conn_socket.send(客户端的数据已经收到了.encode())# 7、关闭套接字conn_socket.close()tcp_server_socket.close()
4、TCP服务器端开发面向对象版本
# 导入模块
import socket# 创建一个WebServer服务器端类
class WebServer(object):# 定义__init__()魔术方法用于对象初始化def __init__(self):# 创建套接字对象self.tcp_server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定IP与端口号self.tcp_server_socket.bind((, 8090))# 设置监听self.tcp_server_socket.listen(128)# 定义一个handle_client_request()def handle_client_request(self, new_socket, ip_port):# 接收客户端消息recv_data new_socket.recv(1024)recv_data recv_data.decode(gbk)print(f{ip_port}客户端发送过来的消息{recv_data})# 返回发送消息给客户端content 信息已收到overover.encode(gbk)new_socket.send(content)# 处理完成后关闭新套接字对象# new_socket.close()# 定义一个start方法用于启动WebServer接收客户端连接def start(self):while True:# 等待客户端连接new_socket, ip_port self.tcp_server_socket.accept()# 定义一个方法用于接收和发送消息self.handle_client_request(new_socket, ip_port)# 创建程序执行入口实例化WebServer类生成对象
if __name__ __main__:# 实例化对象ws WebServer()# 调用自身方法用于启动服务ws.start()
5、扩展TCP服务器端开发之多客户端
# 导入模块
import socket# 1、创建套接字对象
tcp_server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2、绑定IP与端口
tcp_server_socket.bind((, 8090))
# 3、设置监听
tcp_server_socket.listen(128)
# 4、等待客户端连接
while True:# 使用try...except捕获连接异常try:new_socket, ip_port tcp_server_socket.accept()while True:try:# 5、接收客户端发送过来的消息recv_data new_socket.recv(1024)recv_data recv_data.decode(gbk)print(f{ip_port}{recv_data})content input(服务器端消息).encode(gbk)new_socket.send(content)except ConnectionResetError:print(f{ip_port}客户端连接已经断开)breakexcept:print(出错退出服务器监听)break# 关闭套接字对象
tcp_server_socket.close()