python twisted socket 服务端 客户端

使用twisted搭建socket的服务器,并能给客户端发送消息, 比较简单,直接上代码

#coding=utf-8

‘‘‘用于实现给响应客户端的请求,并且可以给客户发送消息,‘‘‘

from twisted.internet import reactorfrom twisted.internet.protocol import Protocol, Factoryimport timeimport thread

#线程体,def timer(no, interval):    while True:        time.sleep(interval)        print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime(time.time())))        for element in MyFactory.clients:            print(element) #在这里可以给每个客户端发送消息            element.transport.getHandle().sendall(‘dddddddddddd‘)    thread.exit_thread()

class MyProtocal(Protocol):    def connectionMade(self):        self.factory.addClient(self)

   def connectionLost(self, reason):        #print(reason)        self.factory.deleteClient(self)

   def dataReceived(self, data):        self.transport.write(‘okthis is ok ‘) #在这里接收用户的请求认证,并返回数据,发送数据请使用transport.getHandle().sendall() 保证数据立刻发送到客户端

class MyFactory(Factory):

   protocol = MyProtocal    clients=[] #用户保存客户端列表,

   def __init__(self):        thread.start_new_thread(timer,(1,3))         #启动线程用于处理用于给客户端主动发送数据

   def addClient(self, newclient):        print(newclient)        self.clients.append(newclient)

   def deleteClient(self, client):        print(client)        self.clients.remove(client)

reactor.listenTCP(9999, MyFactory())reactor.run()

可以在此基础上完成很多模块的功能。

存在以下疑惑点,我如何通过代码来控制停止服务器。 (如何使用reactor.stop())

时间: 2024-10-24 13:47:17

python twisted socket 服务端 客户端的相关文章

java socket 服务端 客户端

Server package com.witwicky.socket.basicsocket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) {

Python socket模块实现TCP服务端客户端

Python socket模块实现TCP服务端客户端 写了详细的注释,如果有哪一行不明白,可留言哦. 服务端脚本 # _*_ coding: utf-8 _*_ __author__ = 'xiaoke' __date__ = '2018/6/13 14:39' # 这个脚本创建一个TCP服务器,它接收来自客户端的消息,然后将消息加上时间戳前缀并返回客户端 import socket from time import ctime HOST = '' PORT = 21567 BUFSIZ = 4

socket服务端和客户端

#!/usr/bin/env python#encoding: utf-8import socketdef handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, World") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREA

C# Socket服务端和客户端互相send和receive

服务端 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Net.Sockets; 5 using System.Net; 6 using System.Threading; 7  8 namespace Controller 9 {10     public static class SocketServer11     {12         private stat

Java网络编程【Socket服务端和客户端】

Socket 编程大家都不陌生,Java 学习中必学的部分,也是 Java网络编程核心内容之一.Java 网络编程又包括 TCP.UDP,URL 等模块.TCP 对应 Socket模块,UDP 对应 DatagramPacket 模块.URL 对应 URL 模块.其中 TCP 和 UDP 是网络传输协议,TCP 是数据流传输协议,UDP 是数据包传输协议.两者之间的异同就不在这里说了,推荐一本入门书籍 <TCPIP入门经典>.我们开始 Socket 服务端和客户端编程吧. 一.Socket 服

python的select服务端的代码和客户端的代码

服务端的代码 import socket import queue import select ip_bind = ("127.0.0.1",9000) message_queue = {} #保存客户端发送过来的信息,将消息放入到队列中 input_list = [] output_list = [] if __name__ == '__main__': server = socket.socket() server.bind(ip_bind) server.listen(10) s

socket服务端处理多个客户端的请求学习理解

socket服务端处理多个客户端的请求:while(true){Socket s=ss.accept();new WorkThread(s).start();}class WorkThread edtends Thread{private Socket s;public WorkThread(Socket s){this.s=s;}public void run(){s.getInput();s.getOutput();}}

Socket——服务端与客户端交互的简单实现

服务端: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socke

C# Socket服务端与客户端通信(包含大文件的断点传输)

步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送字符串.文件(包含大文件).震动) 二.客户端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送