小编Sta*_*kov的帖子

检测TCP何时拥塞python twisted socket服务器

我正在开发一个实时MMO游戏,并且有一个工作的TCP服务器(以及游戏客户端),但现在我正在考虑使用UDP来不断更新其他玩家的位置(从TCP拥塞控制中大大减少随机游戏填充!)我喜欢这些东西比我更聪明的人的帮助(我是python/twisted的新手,在其他地方找不到这个信息;))

目前,我的服务器接受一个简单的Twisted协议连接.例如.

''' TCP reciever '''
class TCPProtocol(Protocol):

    def connectionMade(self):
        #add to list of connected clients
        factory.clients.append(self)

    def dataReceived(self, data):
        pass


#setup factory and TCP protocol class
factory = Factory()
factory.protocol = TCPProtocol
factory.clients = []
reactor.listenTCP(1959, factory)
Run Code Online (Sandbox Code Playgroud)

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 请在下面的代码示例中启动我的内容:(在这里说"请帮忙!") 我是否错误地想到了这一点?任何指导都很棒,谢谢!

from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor

KServerIP='127.0.0.1'
KServerPortTCP=8000
#KClientPortUDP=7055

''' TCP reciever '''
class TCPProtocol(Protocol):

    def connectionMade(self):
        #add to list of connected clients
        factory.clients.append(self)

        #set client variables (simplified)
        self.pos_x=100
        self.pos_y=100

        #add to game room (to …
Run Code Online (Sandbox Code Playgroud)

python udp tcp twisted server

2
推荐指数
1
解决办法
1033
查看次数

Python Twisted TCP套接字如何设置TCP_NODELAY(禁用Nagle算法)?

我有一个实时多人游戏正在持续开发中(它目前在应用程序商店中上线:https://itunes.apple.com/us/app/blewp !-eat-or-be-eaten-mmo/id996122625?mt =8),我使用 TCP 和 UDP 来发送实时消息(TCP 用于需要可靠性的消息,比如玩家死亡),我的服务器端是用 python 编写的,使用 Twisted 作为服务器。我经常需要快速发送小数据包,禁用数据包排队(Nagle 算法)应该有助于让数据包更快到达。

我对twisted做了一些研究,发现这个设置在twisted中的abstract.FileDescriptor下(文档链接:http ://twistedmatrix.com/documents/8.1.0/api/twisted.internet.tcp.Connection.html )

我对 Twisted 很陌生,所以有人可以告诉我如何为 TCP 协议服务器实际调用此设置吗?我找不到可以访问 FileDescriptor 的位置。:(

一行示例代码就很好了,建议总是很感激;)

这是我为帮助解释问题而制作的一个简单示例:

class TCPProtocol(Protocol):

    def connectionMade(self):
        #add to list of connected clients
        factory.clients.append(self)
        '''HELP HERE PLEASE!!!'''
        '''EG.  self.NO_DELAY=True HOW DO I SET THIS?'''


    def dataReceived(self, data):
        pass

    def sendData(self, data):
        self.transport.write(data)



#setup factory and TCP protocol class
factory = Factory()
factory.protocol = TCPProtocol
factory.clients = []
reactor.listenTCP(1959, factory)
Run Code Online (Sandbox Code Playgroud)

python sockets algorithm tcp

2
推荐指数
1
解决办法
2021
查看次数

Shell 脚本 cp 不工作(但在终端中工作)Mac os X

最近在学习shell脚本,被一个奇怪的错误难住了:

我的简单脚本(test.command):

#!/bin/sh
clear
cd /Users/Stan/Desktop/testFolder
ls 
cp "earth.png lol.png"
read -p "Done, press ENTER to finish"
Run Code Online (Sandbox Code Playgroud)

每当我运行脚本(双击 .command 文件)时,以下是输出(从终端窗口复制):

earth.png
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
Copy was done...?
earth.png
Done, press ENTER to finish
Run Code Online (Sandbox Code Playgroud)

cp 总是给出“使用”错误,并且不会复制任何内容,但现在如果我在终端中按顺序手动运行相同的命令(终端窗口的副本):

Stans-Mac-mini:testFolder Stan$ ls
earth.png
Stans-Mac-mini:testFolder Stan$ cp earth.png lol.png
Stans-Mac-mini:testFolder Stan$ ls
earth.png   lol.png
Stans-Mac-mini:testFolder Stan$ 
Run Code Online (Sandbox Code Playgroud)

文件已复制,没有任何错误!请帮我解决这个问题,我在网上找不到任何解决方案,非常感谢您的帮助!

macos bash shell syntax-error cp

2
推荐指数
1
解决办法
2893
查看次数

标签 统计

python ×2

tcp ×2

algorithm ×1

bash ×1

cp ×1

macos ×1

server ×1

shell ×1

sockets ×1

syntax-error ×1

twisted ×1

udp ×1