zoukankan      html  css  js  c++  java
  • server client 套接字连接

    server端:

      1.  阻塞型套接字,不能满足多个客户端同时访问

        import socket

        server = socket.socket()

        server.bind((""127.0.0.1,8898))

        while True:

        server.listen(2)    2为最大同时连接数,python3.6以上有用

        conn,addr = server.accept()

        data = conn.recv(1024)  1024为最大接收字节

        conn.close()      服务器连接关闭

        图例:

            

       2.  非阻塞形套接字,用单线程模拟多线程并发,实现多个客户端同时访问

        import socket

        server = socket.socket()

        server.setblocking(False)

        server.bind(("127.0.0.1",8898))

        server.listen(5)

        conn_list = []    储存客户端请求

        while True:

          try:

            conn,addr = server.accept()

            conn.setblocking(False)

            conn_list.append(conn)

          except BlockingIOError:

            pass

          for conn in conn_list:

            try:

              data = conn.recv(1024)

              if data:

                print(data)

                conn.send(data)

              else:

                conn.close()

                conn_list.remove(conn)

            except  BlockingIOError:

                pass

      图例:
          

        

    client端:

      import socket

      client = socket.socket()

      client.connect(("127.0.0.1",8898))

      client.send(b"hello")

      client.close()

      图例:

        

  • 相关阅读:
    spring boot 中@Mapper和@Repository的区别
    yarn和npm的对比以及yarn的使用
    vue环境搭建
    小白的springboot之路(六)、跨域解决方案CORS
    DWR3.0框架入门(1) —— 实现ajax
    DWR3.0框架入门(3) —— ScriptSession的维护及优化
    DWR3.0框架入门(2) —— DWR的服务器推送
    Freemarker入门案例
    dom4j生成和解析xml文件
    struts2拦截器-自定义拦截器,放行某些方法(web.xml配置)
  • 原文地址:https://www.cnblogs.com/cxhzy/p/9961701.html
Copyright © 2011-2022 走看看