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()

猜你喜欢

转载自www.cnblogs.com/n181762986/p/9035760.html