Articles of networking

我如何在Linux中find一个开放的端口?

是否有某种系统调用会返回端口是否可用? 或者至less有一个传统的做法,不会使你的过程成为一个坏公民? 目前这是我如何做到这一点: def find_open_port(min_port, max_port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) for port in range(min_port, max_port): if port > max_port: raise IOError('Could not find a free port between {0} and {1}'.format(min_port, max_port)) try: s.bind(('localhost', port)) return port except socket.error as error: if error.strerror == 'Address already in use': continue else: raise error 呸!

在Android手动启动3G连接,并保持打开状态

如何在WiFi的同时启动Android的3G数据连接? 我试过了 IConnectivityManager.setMobileDataEnabled(enabled); // via reflection 它在模拟器中工作,但在我的真实手机(Droid 2)中,它短暂地打开然后再次退出。 从shell(adbshell), ip link提供了3G连接的细节: 15: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 3 link/ppp 但是,只有在WiFiclosures时才可用。 当WiFi打开,我试图打开它手动,它抱怨ppp0设备不存在。 bash-3.2# ip link set ppp0 up ip link set ppp0 up Cannot find device "ppp0" 当我尝试列出设备时,我甚至找不到它 bash-3.2# ls /dev/ppp* ls /dev/ppp* /dev/ppp

如何在Linux中创build很多(我的意思是很多)套接字?

我试图用不同的语言(C#,Java,C ++,PHP)来创build一个简单的程序来连接到一个服务器,所有的行为都是一样的。 所以我相信这个问题更多的是一个操作系统级的东西。 基本上我想程序连接到TCP套接字的服务器,并发送1个字节,然后closures套接字。 这需要每秒完成数千次,并持续一段时间。 这是为了对服务器进行基准testing。 到目前为止,在几千个客户端套接字之后,系统完全停止。 它只能在一分钟左右冷却后才能开始创build套接字。 我已经确定,在传输之后我已经closures了每个sockets。 现在,这类问题对像Apache这样的服务器很熟悉,其中的工具(如ab / siege)被build议使用keep-alive协议对Apache进行基准testing。 也就是说,创buildless量的TCP连接,但通过它们发出多个请求来达到基准testing的目的。 然而,在我们的情况下,这是不可能的,因为我们的专有服务器不提供HTTP服务,也不支持HTTP 1.1保持活动模式。 那么如何实现呢? 我已经检查了以下限制 ulimit被设置为非常高的数字 通过将/proc/sys/net/ipv4/tcp_rw_recycle和/proc/sys/net/ipv4/tcp_rw_reuse为1来消除TCP TIME_WAIT 。(我确实已经用netstat确认了没有TIME_WAIT套接字) 这与线程/进程数量的限制无关。 我已经尝试重新启动我的客户端应用程序,它是一样的。 一旦操作系统拒绝新的套接字,没有任何帮助。 PS。 这不是服务器端的限制。 我们通过购买另一个盒子并在第一个客户端盒子拒绝插入新套接字时运行相同的客户端代码来testing这一点。 服务器处理得很好。 我们不想购买5-10盒,并在它们之间旋转来克服这个问题。 OS:Fedora 10 Linux 2.6.24-23-xen#1 SMP

阻止网站而不强迫用户重新启动浏览器?

我知道阻止一个网站是一个受欢迎的问题,但没有我见过的答案解决我的具体情况: 我想阻止一个网站(由用户select,在Windows XP上也必须具有pipe理权限), 而不强迫她重新启动浏览器。 众所周知的修改主机文件的方法需要重新启动一些浏览器。 我想以一种独立于浏览器的方式(例如,Content Advisor在IE中工作,但在FF中不工作),并且不需要用户重新启动浏览器。 请注意,我有兴趣知道如何以编程方式执行此操作,所以http://superuser.com或http://serverfault.com不是真正的这个问题的正确地方,因为他们大多build议工具和服务 ,而我对底层知识感兴趣,所以我可以自己实现它。 想法? 谢谢。

TideSDK封装在Windows或Linux的Mac上

我读过这个 从一个平台构buildWin,Mac和Linux软件包 答案说 一个服务平台即将来临,将解决这个问题,使每个人都更容易开发。 我们将通过这个提供公告。 所以我认为这是TideSDK的开发者 但是没有select将应用程序构build到其他平台上 然后我尝试用cli来构build它,但是出现了一些错误 python "$path_to_sdk/tidebuilder.py" -p -n -t network -d "packages/win32/network" -o "win32" "../my_project" Traceback (most recent call last): File "/Users/tony/Library/Application Support/TideSDK/sdk/osx/1.3.1-beta/tidebuilder.py", line 141, in <module> environment = env.PackagingEnvironment(options.platform, packager, options.appstore) File "/Users/tony/Library/Application Support/TideSDK/sdk/osx/1.3.1-beta/env.py", line 63, in __init__ self.init_normal_dirs(script_dir) File "/Users/tony/Library/Application Support/TideSDK/sdk/osx/1.3.1-beta/env.py", line 83, in init_normal_dirs p.join(os.environ['APPDATA'], 'TideSDK'), File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", […]

无法连接到Web服务器中内置的Web开发人员

当我昨天返回到Visual Web Developer时,我不能再运行/debugging我的项目。 点击绿色的播放button启动ASP.NET开发服务器(它显示在系统托盘中),但浏览器只显示错误消息“Firefox无法连接到本地主机:58127”(瑞典语翻译)。 IE7说“无法显示网页”。 我无法弄清楚为什么会发生这种情况。 它几个星期后回来了。 可以有一个Windows设置搞砸了吗? (我试图禁用防火墙,没有任何改变。)

Apache Thrift Python-Java'拒绝连接'

我最近尝试使用Thrift将Python连接到Java。 我已经在Python(PyPy)上编写了一个服务器。 我也写了一个参考客户端的工作。 然后我写了一个Java客户端,它只产生一个“连接被拒绝”exception。 这有什么问题? (最近我还发现一个封闭的问题,具有这个问题https://issues.apache.org/jira/browse/THRIFT-1888 ) PS。 使用Thrift 0.9版本,PyPy 2.0 beta 2,Java 1.7.0_11 test.thrift namespace java com.test namespace python test service TestPing { void ping() } Python服务器代码 class TestPingHandler: def ping(self): pass handler = TestPingHandler() processor = TestPing.Processor(handler) transport = TSocket.TServerSocket(port=9091) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) print […]

如何映射批处理中的networking驱动器

我的用户用来映射networking驱动器。 我开发了一个工具,它使用一个networking驱动器i :. 问题:我可能重叠用户定义的驱动器。 我怎样才能打开一个DOSbatch file,将定义一个新的networking驱动器为自己的使用,但不会更改用户可见的networking驱动器?

用npm(3.10.3)Win 10 nodejs(6.6)不能安装cordova

我安装了nodejs 6.6并想安装Cordova。 所以在命令行中input: npm install -g Cordova 如果失败。 我在网上search,发现如下: npm config set proxy http://user:password@url:port npm config set https-proxy http://user:password@url:port npm config set strict-ssl false 我再次尝试它仍然失败; 所以我再次search无法安装任何与npm ECONNRESET没有代理 并执行如下: npm config set registry http://registry.npmjs.org/ npm cache clean 仍然安装失败。 这是从家庭连接的私人电脑。 我最后一次尝试: C:\Users\An>npm config set proxy C:\Users\An>npm cache clean npm WARN invalid config proxy="" npm WARN invalid config […]

Windows模拟networking电缆丢失

我想编程一些工具,我想模拟一个networking电缆输了。 所以我想得到相同的效果,像我拔掉从我的电脑的networking电缆,并再次插入。 这与'/ renew'/'/ release'命令不一样。 当我断开/连接它manualy它看起来喜欢窗口记得一些事情,它连接很快又回来了。 这是可能的,也许如何在代码中做到这一点? 非常感谢你! 编辑:我发现另一个程序,只是阻止所有端口,这对我也是好的,但如何在代码:)。