标签存档: Socket

Socket服务器性能测试器+源码

socket_performance_tester

2011-08-05升级:加入自定义数据发送的功能,规则:s字符串,b字节,i长整数,u无符号整形,n短整形。例如:n1000,b1,i65555,s你懂的

为了测试新服务器的连接承载能力,我花了点时间写了这个测试器,但其实这只能算个雏形而已。

后来测试器使用C#重写,所以这个测试器就没再修改和更新,里面已有的BUG也没怎么解决。

目前的版本实现了以下功能:

  • 指定连接数量;
  • 允许指定连接间隔时间;
  • 发送指定大小的测试数据包;
  • 自动写入log文件(不要妄想用TextArea显示Log,最后程序会直接被log信息的更新拖死……)
  • 加入自定义数据发送的功能,规则:s字符串,b字节,i长整数,u无符号整形,n短整形。例如:n1000,b1,i65555,s你懂的

继续阅读 »

SWF帧频(FPS)对Socket连接的影响

本文源码

Adobe官方帮助中对于Flash Player的睡眠模式有这样一段介绍

ActionScript 代码在睡眠模式下继续执行,这与将 Stage.frameRate 属性设置为 4 fps 类似。但是跳过呈现步骤,因此用户看不到该 Player 正在以 4 fps 的速率运行。之所以将帧速率选择为 4 fps (而不是 0),是因为该速率允许所有连接保持打开状态(NetStream、Socket 和 NetConnection)。将帧速率切换到 0 fps 会断开打开的连接。之所以将刷新速率选择为 250 毫秒 (4 fps),是因为……。

确实是这样么?当FPS低于4或者为0的时候,Socket连接会断开么?低帧频的时候,通过Socket发送的数据,是根据帧率触发,还是直接触发呢?于是我写了个测试程序做了如下测试:

  • 在舞台上双击的时候,可以在帧频2和帧频0之间切换;
  • 每次EnterFrame的时候,向Socket服务器发送布尔值false;
  • 每次单击鼠标的时候,向Socket服务器发送布尔值true;
  • 在服务端,显示出每次发送数据之间的间隔,同时显示发送的数据内容(1=true,0=false)。

继续阅读 »

[转]Java socket – 套接字基础

套接字处理代码只存在于表示层中

转自:http://caihx.javaeye.com/blog/605143

套接字基础
1. 介绍

多数程序员,不管他们是否使用 Java 语言进行编码,都不想很多知道关于不同计算机上的应用程序彼此间如何通信的低级细节。程序员们希望处理更容易理解的更高级抽象。Java 程序员希望能用他们熟悉的 Java 构造,通过直观接口与对象交互。

套接字在两个领域中都存在 ― 我们宁愿避开的低级细节和我们更愿处理的抽象层。本教程讨论的低级细节将只限于理解抽象应用程序所必须的部分。 继续阅读 »

[转]Http和Socket连接区别

转自:http://blog.csdn.net/zsnlovewl/archive/2009/12/12/4991820.aspx

1、TCP连接

要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

建立起一个TCP连接需要经过“三次握手”:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 继续阅读 »