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

  • 相关阅读:
    《3D Math Primer for Graphics and Game Development》读书笔记1
    OpenGL学习资料汇总
    [Unity3D]做个小Demo学习Input.touches
    [Unity3D]再次点击以退出程序
    图文详解Unity3D中Material的Tiling和Offset是怎么回事
    自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药
    自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析
    Unity3D核心类型一览
    自制Unity小游戏TankHero-2D(3)开始玩起来
    自制Unity小游戏TankHero-2D(2)制作敌方坦克
  • 原文地址:https://www.cnblogs.com/wind-under-the-wing/p/12819590.html
Copyright © 2011-2022 走看看