'''
网络编程
Socket(TCP,IP)套接字 服务端
运行起来, 客户端
客户端
客户端
客户端 服务端:
import socket sk = socket.socket()
#绑定端口号
sk.bind(('127.0.0.1',9999,))
#接收客户请求
sk.listen(5) #链接客户端地址信息
while True:
#
conn,address = sk.accept()
conn.sendall(bytes('老男孩',encoding='utf-8'))
while True:
ret_bytes = conn.recv(1024)
ret_str = str(ret_bytes,encoding='utf-8')
conn.sendall(bytes('你妹',encoding='utf-8'))
print(ret_str)
break
print(conn,'\n\n\n',address) 客户端
import socket obj = socket.socket() obj.connect(('127.0.0.1',9999,)) #等待接受服务器消息
r = obj.recv(1024)
print(str(r,encoding='utf-8')) obj.sendall(bytes('呵呵',encoding='utf-8')) r1 = obj.recv(1024)
print(str(r1,encoding='utf-8')) obj.close() 文件传输
服务端
import socket sk = socket.socket()
#绑定端口号
sk.bind(('127.0.0.1',9999,))
#接收客户请求
sk.listen(5) #链接客户端地址信息
conn,address = sk.accept() file_name = conn.recv(1024)
str_file_name = str(file_name,encoding = 'utf-8')
r = 0
f = open('D:\E\semantic\%s'%str_file_name,'wb')
while True:
r += 1
print(r)
ret_bytes = conn.recv(1024)
f.write(ret_bytes)
f.flush()
if ret_bytes:
pass
else:
print('ok')
break 客户端 import time,os
time.sleep(3)
import socket
obj = socket.socket()
obj.connect(('127.0.0.1',9999,)) path_name = 'D:\e\同步文件\桌面 EXT/楚楚街 主推款.xlsx'
file_name = os.path.basename(path_name)
obj.sendall(bytes(file_name,encoding='utf-8')) q = 0
with open(path_name,'rb') as f: for i in f:
q += 1
print(q)
obj.sendall(i) obj.close() socketserver多进程服务器:
并发处理多个客户请求
使用方法:
1,创建类,必须继承
2,handle方法
3,server.serve_forever import socket,socketserver class myserver(socketserver.BaseRequestHandler):
def handle(self): conn = self.request
conn.sendall(bytes('hello',encoding='utf-8'))
ret = conn.recv(1024)
ret_str = str(ret,encoding='utf-8')
print(ret_str) if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1',9999),myserver)
server.serve_forever() socketserver 服务器多进程 文件传输 服务器
import socket,socketserver class myserver(socketserver.BaseRequestHandler):
def handle(self):
conn = self.request
file_name = conn.recv(1024)
tr_file_name = str(file_name,encoding='utf-8')
f = open('D:\E\semantic/%s'%tr_file_name,'wb')
conn.sendall(bytes('腻2',encoding='utf-8'))
r = False
ww = 0
while not r:
data = conn.recv(1024)
f.write(data)
if data:
ww += 1
print(ww)
else:
r = True if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1',9999),myserver)
server.serve_forever() 客户端
import time,os
time.sleep(2)
import socket
obj = socket.socket()
obj.connect(('127.0.0.1',9999,))
path_name = 'D:\E\同步文件\装修Banner\产品抠图/用品2.psd'
file_name = os.path.basename(path_name)
obj.sendall(bytes(file_name,encoding='utf-8'))
print(str(obj.recv(1024),encoding='utf-8')) q = 0
with open(path_name,'rb') as f:
for i in f:
q += 1
print(q)
obj.sendall(i) obj.close() '''

  

socketserver服务器的更多相关文章

  1. 使用select异步IO实现socketserver服务器 源码剖析

    #_*_coding:utf-8_*_ #这是一个echo server,客户端消息,服务端回复相同的消息 import select, socket, sys, queue # Create a T ...

  2. socketserver 分块记录

    网络编程 Socket(TCP,IP)套接字 服务端 运行起来, 客户端 客户端 客户端 客户端 服务端: import socket sk = socket.socket() #绑定端口号 sk.b ...

  3. python socket和socketserver

    Python提供了两个基本的socket模块.一个是socket,它提供了标准的BSD Socket API:另一个是socketServer,它提供了服务器中心类,可以简化网络服务器的开发. 下面先 ...

  4. python网络编程socket /socketserver

    提起网络编程,不同于web编程,它主要是C/S架构,也就是服务器.客户端结构的.对于初学者而言,最需要理解的不是网络的概念,而是python对于网络编程都提供了些什么模块和功能.不同于计算机发展的初级 ...

  5. Python网络编程03----Python3.*中socketserver

    socketserver(在Python2.*中的是SocketServer模块)是标准库中一个高级别的模块.用于简化网络客户与服务器的实现(在前面使用socket的过程中,我们先设置了socket的 ...

  6. 自己动手写一个简单的(IIS)小型服务器

    因为第一次在博客园发表随笔,不太会用,这个笔记是我之前在印象笔记中写好的,然后直接copy过来,有兴趣自己做一个IIS服务器的小伙伴们可以参照下面的流程做一次,也可以叫我要源代码,不过要做完,我觉得花 ...

  7. Python网络编程(2)-粘包现象及socketserver模块实现TCP并发

    1. 基于Tcp的远程调用命令实现 很多人应该都使用过Xshell工具,这是一个远程连接工具,通过上面的知识,就可以模拟出Xshell远程连接服务器并调用命令的功能. Tcp服务端代码如下: impo ...

  8. Python 套接字socketserver网络编程

    为什么使用socketserver 虽然Python内置的socket和threading模块能实现简单的多线程服务器,在非正式环境,随便用用还是可以的,但是如果要在生产环境中使用,那是万万不够的. ...

  9. Python3 socketserver模块

    socketserver(在Python2.*中的是SocketServer模块)是标准库中一个高级别的模块.用于简化网络客户与服务器的实现(在前面使用socket的过程中,我们先设置了socket的 ...

随机推荐

  1. 2016年12月31日 星期六 --出埃及记 Exodus 21:26

    2016年12月31日 星期六 --出埃及记 Exodus 21:26 "If a man hits a manservant or maidservant in the eye and d ...

  2. Discuz!模板解析语法

    <!--{eval echo autostart("); }--> PHP中使用template()函数显示已存在模板 在Discuz!程序执行中可以通过 include tem ...

  3. 名词王国里的死刑execution in the kingdom of nouns

    http://www.cnblogs.com/bigfish--/archive/2011/12/31/2308407.htmlhttp://justjavac.com/java/2012/07/23 ...

  4. Download Oracle Forms 6i

    To download Oracle Forms Developer 6i from Oracle click this link http://download.oracle.com/otn/nt/ ...

  5. Spring事务属性的介绍

    Spring声明式事务让我们从复杂的事务处理中得到解脱.使得我们再也无需要去处理获得连接.关闭连接.事务提交和回滚等这些操作.再也无需要我们在与事务相关的方法中处理大量的try-catch-final ...

  6. java.lang.InstantiationException-反射机制

    package com.test.classtest; public class test { public static void main(String[] args) throws Except ...

  7. c++共享内存(转载)

    对于连个不同的进程之间的通信,共享内存是一种比较好的方式,一个进程把数据发送到共享内存中, 另一个进程可以读取改数据,简单记录一下代码 #define BUF_SIZE 256 TCHAR szNam ...

  8. jQuery innerWidth outerWidth(false/true)

    outerWidth默认为false

  9. C# 实现HTML转换成图片的方法

    /// <summary>        /// 通过WebBrowser控件来实现从HTML到Bmp图片的生成.        /// </summary>        / ...

  10. arm-linux-androideabi-addr2line

    ./arm-linux-androideabi-addr2line -C -f -e libc.so 00040d94