python socket-tcp逻辑
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:AZ Ning import socket #可以将ip_port;back_log;buffer_size 单独提为备置文件 ip_port = ("127.0.0.1",8051) #设置服务器IP和端口 back_log = 5 #设置服务器半链接库的数量,即允许多少个同时的链接数 buffer_size = 1024 #指定一次读取的字节数大小 . # 创建一个socket对像 以AF_INET地址家族,SOCK_STREAM协议 sever_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # sever_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,2) #重启IP和端口,解决 重启服务器提示套接字地址只能使用一次的异常问题 sever_socket.bind(ip_port) #为socket.bind绑定IP和端口号 sever_socket.listen(back_log) #监听端口, while True: #链接数循环,允许多个客户端链接 conn,addr = sever_socket.accept() #accept阻塞,等待客户端链接,连接后将 链接和地址减压分别给conn和addr while True: #信息循环 允许多次发送消息 try: #客户端链接异常处理 date = conn.recv(buffer_size) #以1024字节 从内核态里接收消息 print(date.decode("utf-8")) #打印接收到的文件,需要用deconde解码 conn.send("ABC".encode("utf-8")) #发送消息给客户端 except Exception as abs: break conn.close() print("conn已关闭") sever_socket.close() print("socket已关闭")
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:AZ Ning from socket import * ip_port = ("127.0.0.1",8051) buffer_size = 1024 client_socket = socket(AF_INET,SOCK_STREAM) #创建一个socket client_socket.connect(ip_port) #链接到服务器IP和端口 while True: #消息循环 允许发送多次消息 msg = input("输入需要发送的内容:") if len(msg) == 0:continue #如果输入内容为格时结束本次循环 client_socket.send(msg.encode("utf-8")) #发送消息,以字节形式发 date=client_socket.recv(buffer_size) print(date) client_socket.close()