python socket 局域网模块传输

本文介绍了使用Python的socket模块进行局域网内的通信。内容包括内网和外网通信的区别,以及基础的socket通信示例,特别是如何实现发送和接收文件。在文件传输中,由于速度限制,需要分两次接收,先接收文件信息,再接收文件内容。作者还提出了一个未实现的想法,即通过两个不同端口分别传输文件信息和文件内容。
摘要由CSDN通过智能技术生成

“127.0.0.1”  “0.0.0.0”   用于本机和软件内部通信

网络通信只要能 ping www.baidu.com  的通 都可以通信 

通信分为内网 和外网,内网由一个如路由器之类的中转站。外网通信需要 转换IP地址,私有IP转公有IP  (具体的还没有学习到)

下面直接上代码 ,一个基础的  一个可以发送文件夹文件的。

基础的

客户端

# -*- coding: utf-8 -*-

import socket
# import hashlib

#客户端 对服务端发送请求
#设置IP和端口
SERVER_HOST="192.168.10.104"
SERVER_PORT=5004

#这是文件读写缓存区
BUFFER_SIZE=4096
SEPARATOR="<SEPARATOR>"

#创建Server
s=socket.socket()
s.connect((SERVER_HOST,SERVER_PORT))

while True:

    text=input("输入:")
    s.send(text.encode())
    # kur=s.recv(BUFFER_SIZE)
    # print("服务器:",kur.decode("utf-8"))
    # print(len(kur.rsplit()), "客户端接收长度")
    # if len(kur.rsplit())==0:
    #     break
    if text=="del" or text=="DEL":
        break
    # print("循环结尾")
s.close()

服务端

# -*- coding: utf-8 -*-
'''
服务端接收用户请求
'''
import  socket
import time
# import tqdm
# import os
#服务端读写
#设置服务器的IP和端口
SERVER_HOST="0.0.0.0"
SERVER_PORT=5004

#这是文件读写缓存区
BUFFER_SIZE=4096
SEPARATOR="<SEPARATOR>"

#创建Server
s=socket.socket()
s.bind((SERVER_HOST,SERVER_PORT))
#设置链接的监听数
s.listen(5)

#循环检测 接收客户端链接  调用 accept()时,Socket会进入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。
# accept()返回一个含有两个元素的元组(conn, addr)。第一个元素conn是新的Socket对象,
# 服务器必须通过它与客户通信;第二个元素addr是客户的IP地址及端口。

client_socket,address=s.accept()
# print("客户端接收信息和地址",client_socket,address)

while True:
    #接收客户端信息
    received=client_socket.recv(BUFFER_SIZE)
    inio=received.decode("utf-8")
    print("接收客户端的消息:",inio)
    localtime =time.strftime("%Y-%
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值