python: socket
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """ 网络发送信息 """ import socket import threading def handlesend(tcpclient): """ 发送 :return: """ while True : message = input () tcpclient.send(message.encode()) def handlerecv(tcpclient): """ 接收 :return: """ recvdata = tcpclient.recv( 1024 ) print (recvdata.decode()) # 中文 # print(recvdata.decode('gbk')) def send(): #TCP 客户端 #1 创建TCP socket 对象 # socket.AF_INET ip4 # socket.SOCK_STREAM TCP 协议 # socket.DGRAM upd 协议 tcpclient = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #2 链接TCP 服务端 ip地址, port 端口 tcpclient.connect( '172.16.1.106' , 6666 ) t1 = threading.Thread(target = handlesend,args = (tcpclient,)) t1.start() t2 = threading.Thread(target = handlerecv,args = (tcpclient,)) t2.start() ''' #3 发送信息 while True: message=input() tcpclient.send(message.encode()) #中文 #tcpclient.send(message.encode('gbk')) #4 接收信息 用多线程来解决卡顿 recvdata=tcpclient.recv(1024) print(recvdata.decode()) #中文 #print(recvdata.decode('gbk')) ''' #5 关闭 socket tcpclient.close() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | """ """ import socket import threading def servertcp(): # Tcp 服务端 # 1 创建tcp sockect tcpserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2 绑定端口号 tcpserver.bind('', 6667 ) # 3 监听端户端最大个数 tcpserver.listen( 80 ) print ( "服务器启动" ) # 4 等待接收客户端 while True : #acceptdata=tcpserver.accept() newclient,ipoort = tcpserver.accept() print (ipoort, '链接近来了' ) # 5 发送数据 newclient.send( '连我干吗?' .encode( 'gbk' )) # 6 接收数据 recvdata = newclient.recv( 1024 ) print ( '接收到信息' ,recvdata.decode( 'gbk' )) newclient.close() # 7 关闭 socket tcpserver.close() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | """ 服务器端 """ import socket import threading def handlecliend(newclient): """ :param newclient: :return: """ # 5 发送数据 newclient.send( '连我干吗?' .encode( 'gbk' )) # 6 接收数据 recvdata = newclient.recv( 1024 ) print ( '接收到信息' , recvdata.decode( 'gbk' )) newclient.close() def servertcp(): # Tcp 服务端 # 1 创建tcp sockect tcpserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2 绑定端口号 tcpserver.bind('', 6667 ) # 3 监听端户端最大个数 tcpserver.listen( 80 ) print ( "服务器启动" ) # 4 等待接收客户端 改成多线程 while True : #acceptdata=tcpserver.accept() newclient,ipoort = tcpserver.accept() print (ipoort, '链接近来了' ) ''' # 5 发送数据 newclient.send('连我干吗?'.encode('gbk')) # 6 接收数据 recvdata=newclient.recv(1024) print('接收到信息',recvdata.decode('gbk')) newclient.close() ''' t = threading.Thread(target = handlecliend,args = (newclient,)) t.start() # 7 关闭 socket tcpserver.close() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | """ ClienSendFile.py https://github.com/justEhmadSaeed/Python-Sockets-File-Transfer https://codereview.stackexchange.com/questions/197462/large-file-transmission-over-socket-in-python https://www.pybloggers.com/2014/06/python-and-sendfile/ https://github.com/giampaolo/pysendfile """ import socket import os import threading HOST = "127.0.0.1" # The server's hostname or IP address localhost PORT = 8000 # The port used by the server def handlesendtofile(tcpclient:socket.socket,path: str ,filename: str ): """ :param tcpclient: :param path: :param filename: :return: """ tcpclient.send(filename.encode( 'gbk' )) #发送文件名 with open (path, 'rb' ) as fp: while True : data = fp.read( 1024 ) tcpclient.send(data) if not data: break tcpclient.close() def sendfile(): # Tcp 服务端 # 1 创建tcp sockect #2 链接TCP 服务端 ip地址, port 端口 #tcpclient.connect('172.16.1.106',6667) # 4 等待接收客户端 改成多线程 while True : filename = input ( "请输入文件名:" ) path = rf 'client_dir\{filename}' if not os.path.exists(path): print ( "你输入的文件名不存在" ) continue try : tcpclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcpclient.connect( '172.16.1.106' , 6667 ) t = threading.Thread(target = handlesendtofile,args = (tcpclient,path, '来自于客户端' + filename)) t.start() except Exception as ex: print (ex) print ( '发送完成!' ) tcpclient.close() def send(): """ :return: """ file = open ( 'doc.txt' , 'rb' ) data = file .read( 1024 ) with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as ss: while data: ss.send(data) data = file .read( 1024 ) if not data: break file .close() with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((HOST, PORT)) s.sendall(b "Hello, world" ) data = s.recv( 1024 ) print (f "Received {data!r}" ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | """ ServerReceFile.py """ import socket import os import threading #import tqdm HOST = "127.0.0.1" # The server's hostname or IP address PORT = 8000 # The port used by the server SEPARATOR = "<SEPARATOR>" BUFFER_SIZE = 4096 # send 4096 bytes each time step def handleReceFile(newclient:socket.socket): recvdata = newclient.recv( 1024 ) filename = recvdata.decode( 'gbk' ) path = fr 'server_dir\{filename}' with open (path, 'wb' ) as fp: while True : data = newclient.recv( 1024 ) fp.write(recvdata) if not recvdata: break print ( '接收完成' ) newclient.close() def ReceFile(): tcpserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2 绑定端口号 tcpserver.bind('', 6667 ) # 3 监听端户端最大个数 tcpserver.listen( 80 ) print ( "服务器启动" ) # 4 等待接收客户端 while True : # acceptdata=tcpserver.accept() newclient, ipoort = tcpserver.accept() t = threading.Thread(target = handleReceFile,args = {newclient,}) t.start() def Rece(): """ :return: """ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) s.listen() conn, addr = s.accept() with conn: print (f "Connected by {addr}" ) while True : data = conn.recv( 1024 ) if not data: break conn.sendall(data) |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
2015-07-23 csharp: 用Enterprise Library对象实体绑定数据
2013-07-23 -ms-zoom property
2013-07-23 jQuery:mouseover and Increase the Size of an Image
2011-07-23 SQL script 會計記賬 Debit-Credit Bookkeeping