“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-%