zoukankan      html  css  js  c++  java
  • tcp/socket

    ftp server
      1,读取文件名
    2,检测文件是否存在
    3,打开文件
    4,检测文件大小
    5,发送文件大小和md5给客户端
    6,等待客户端确认
    7,开始边读边发
    # 粘包
    两个相邻的包一起发会导致错误
    time.sleep(0.5)会避免
    client_ack = conn.recv(1024) 进行一次接收,避免粘包


    服务器端

    import socket
    
    server = socket.socket()
    server.bind(("localhost", 6969))        #绑定要监听的端口
    server.listen(2)     #监听多少个连接
    
    while True:
        conn,addr=server.accept()           #等待数据
        #conn就是客户端连过来而在服务器端围棋生成的一个连接实例
        print(conn)
        print(addr)
        # server.accept()
        while True:
            data = conn.recv(1024)
            if data is None:
                print("connection lost")
                break
            print("recv", data)
            print(type(data))
            conn.send(data.upper())
    
    server.close()

    客户端

    import socket
    
    client = socket.socket()         #生命socket类型,生成socket连接对象
    client.connect(('localhost', 6969))
    while True:
            msg = input("type here >>").strip()
            if len(msg) == 0:
                    continue
            client.send(msg.encode('utf-8')),       # 不能send空
    
            data = client.recv(1024)
    
            print(data.decode())
    
    client.close()
    socket server
    1,必须创建一个请求处理类继承BaseRequestHandler,重写父类里的handle()方法
    2,必须实例化TCPserver并且传递server IP和上面创建的请求处理类
    3,请求函数:
    server.server_forever() 处理多个请求,永远执行
    server.handle_request() 处理一个请求就退出
  • 相关阅读:
    Alpha 冲刺 (1/10)
    项目需求分析答辩总结
    项目选题报告答辩总结
    项目UML设计(团队)
    第七次作业--项目需求分析(团队)
    第六次作业--结对编程第二次
    Alpha 冲刺 (4/10)
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
    Alpha 冲刺 (1/10)
  • 原文地址:https://www.cnblogs.com/hinimix/p/9056953.html
Copyright © 2011-2022 走看看