zoukankan      html  css  js  c++  java
  • 简单的socket通信

    服务器端

    #-*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    #服务端
    import socket
    
    server = socket.socket()
    server.bind(('localhost',9999)) #绑定要监听的端口
    server.listen() #开始监听TCP传入连接。指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。大部分应用程序设为5就可以了
    conn,addr = server.accept() #等待连接
    #conn就是客户端连过来在服务器端生成的一个连接实例
    #addr为连接地址
    print (conn,addr)
    print ('OK')
    data = conn.recv(1024)
    print ('recv:',data)
    conn.send(data.upper())
    server.close()
    

     客户端

    #-*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    #客户端
    import socket
    
    client = socket.socket()  #声明socket类型,同时生成socket连接对象
    client.connect(('localhost',9999)) #因为只能传入一个参数,所以使用元组
    client.send(b'Hello World') #在py3中需要指定bytes类型
    data = client.recv(1024)
    print ('recv:',data)
    client.close()
    

     开启服务端,等待连接

    开启客户端

    客户端发送Hello World给服务器端,服务器端收到后返回大写的给客户端

    如果需要发送中文,需要进行转码

    #-*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    #客户端
    import socket
    
    client = socket.socket()
    client.connect(('localhost',9999))
    client.send('你好'.encode('utf-8'))
    data = client.recv(1024)
    print ('recv:',data.decode())
    client.close()
    

    运行结果

  • 相关阅读:
    高性能无锁队列,代码注释
    阿里mysql同步工具otter的docker镜像
    webgl鱼眼算法
    国际网络环境对库的影响
    newlisp
    java面试之数据库
    java面试之遇到过的问题
    java面试之springboot
    git常用命令
    java面试之jenkins
  • 原文地址:https://www.cnblogs.com/sch01ar/p/7954746.html
Copyright © 2011-2022 走看看