笔记_计算机网络_Python socket编程

来源:互联网 发布:牵引变电所接地网优化 编辑:程序博客网 时间:2024/06/14 12:14

服务器__TCP_Server

#!/usr/bin/python3# 主机服务器# 导入 socket、sys 模块import socket#import sys# 创建 socket 对象serversocket = socket.socket(    socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名host = socket.gethostname()port = 6666# 绑定端口serversocket.bind((host, port))# 设置最大连接数,超过后排队serversocket.listen(5)while True:    # 建立客户端连接    clientsocket,addr = serversocket.accept()    print("连接地址: %s" % str(addr))    num = int(clientsocket.recv(1024).decode())    factorial = 1    msg='0'    # 查看数字是负数,0 或 正数    if num < 0:        msg='抱歉,负数没有阶乘\r\n'    elif num == 0:        msg = '0 的阶乘为 1\r\n'    else:        for i in range(1, num + 1):            factorial = factorial * i        msg=str(num)+' 的阶乘为 '+str(factorial)+'\r\n'    clientsocket.send(msg.encode())    clientsocket.close()

客户__TCP_Client

#!/usr/bin/python3# client# 导入 socket、sys 模块import socket# import sys# 创建 socket 对象s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名host = socket.gethostname()# 设置端口号port = 6666# 连接服务,指定主机和端口s.connect((host, port))num = input('Input lowercase sentence:')s.send(num.encode())# 接收小于 1024 字节的数据msg = s.recv(1024)s.close()print (msg.decode())

客户机

服务器