zoukankan      html  css  js  c++  java
  • python网络编程——TCP服务的简单实现

    TCP服务的简单实现过程分为服务端和客户端的实现,

    首先服务端的实现过程大致为

    ################
    ##TCP服务端结构##
    ################
    tcps = socket() #创建服务器套接字
    tcps.bind() #把地址绑定到套接字
    tcps.listen() #监听链接
    while True: #服务器无限循环
    tcpc = tcps.accept() #接受客户端链接
    while True: #通讯循环
    tcpc.recv()/tcpc.send() #对话(接收与发送)
    tcpc.close() #关闭客户端套接字
    tcps.close() #关闭服务器套接字(可选)

    下面放上代码:
    服务端的代码为
    #server.py
    import socket
    import sys
    
    # 创建socket对象
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # SOCK_STREAM面向连接
    # 获取本地主机名
    host = socket.gethostname()
    
    port = 9999
    
    # 绑定端口
    serversocket.bind((host, port))
    # bind()绑定地址(host,port)到套接字,
    # 在AF_INET下,以元组(host, port)的形式表示地址
    
    # 设置最大连接数,超过后排队
    serversocket.listen(5)
    
    while True:
        # 建立客户端链接
        clientsocket, addr = serversocket.accept()
        # 被动接受TCP客户端链接,等待传入连接。
        # 返回代表连接的新套接字以及客户端的地址。
        # 对于IP套接字,地址信息是一对(hostaddr,端口)。
        print("链接地址: %s" % str(addr))
        msg = "欢迎访问翼下之风的博客!" + "
    "
        clientsocket.send(msg.encode('utf-8'))
        clientsocket.close()
    客户端的代码为 
    #client.py
    import socket
    import sys
    
    #创建socket对象
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    #获取本地主机名
    host = socket.gethostname()
    port = 9999
    
    #链接服务,指定主机和端口
    s.connect((host, port))
    
    #接收小于num_byte的数据
    num_byte = 1024
    msg = s.recv(num_byte)
    
    s.close()
    print(msg.decode('utf-8'))

    需要介绍的是,这两个程序如果在同一个主机上运行,那么可以看到服务端print出来的ip地址为127.0.0.1,这个IP地址是一个本主机内的环回地址,如果需要在局域网内的两个主机中分别运行这两个脚本,则需要将客户端中的

    host = socket.gethostname()

    修改为host = IP #ip为服务端所运行的主机的ip


    上述为个人学习笔记,欢迎学习交流,不当之处请留言,看到就修改,thanks for view

  • 相关阅读:
    day 12 元组的魔法
    day 12 列表的魔法,及灰魔法
    day 11 Python课上练习解释与基础知识练习题试题一
    day 11 rang的用法和练习
    day 10 字符串的魔法
    day1 Python可变与不可变类型
    day1 数据类型
    Math对象
    Calendar对象
    Date对象
  • 原文地址:https://www.cnblogs.com/wind-under-the-wing/p/12819590.html
Copyright © 2011-2022 走看看