python模拟百度网盘(1)

实现服务器与客户端的简单通信

服务器代码 

import socket
def tcp_server():
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#tcp的socket, 开启一个缓冲区
    addr=("192.168.0.106",2000)
    s.bind(addr)
    s.listen(128)#同时可以往缓冲区中放入的连接数
    new_client, client_addr=s.accept()#和客户端的s.connect()一起实现三次握手, 接收连接请求, 返回客户端的IP地址和端口号
    print(client_addr)
    new_client.send("I am serve".encode('utf8'))
    data=new_client.recv(100)
    print(data.decode('utf8'))
    new_client.close()#开始四次挥手
    s.close()
def udp_server():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 第一个socket代表socket包, 第二个socket代表socket类
    addr = ("192.168.0.106", 2000)  # 写1024以上端口
    s.bind(addr)  # 失败直接抛出异常,绑定服务器的IP地址和端口
    data, client_addr = s.recvfrom(100)  # 100代表接收100字节, recvfrom的大小要>sendto发送的大小
    s.sendto('world'.encode('utf8'), client_addr)
    s.close()
if __name__=="__main__":
    tcp_server()

客户端代码 

import socket
def udp_client():
    client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    dest_addr=("192.168.0.106",2000)#写1024以上端口, 目标服务器的IP地址和端口
    client.sendto(b'hello',dest_addr)
    data, _=client.recvfrom(100)
    print(data.decode('utf8'))
    client.close()
def tcp_client():
    client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    dest_addr=("192.168.0.106",2000)
    client.connect(dest_addr)
    data=client.recv(100)
    print(data.decode('utf8'))
    client.send("I am a man".encode('utf8'))
    client.close()
if __name__=="__main__":
    tcp_client()

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值