我正在为朋友建立一个小型聊天应用程序,但不确定如何及时获取信息,而不是手动或基本上强制刷新页面.
目前,我正在使用简单的AJAX实现这一点,但这有一个缺点,即当一个短计时器过去时经常点击服务器.
在研究长/短轮询时,我遇到了HTML5 WebSockets.这似乎很容易实现,但我不确定是否存在一些隐藏的缺点.例如,我认为WebSockets仅受某些浏览器的支持.我应该注意WebSockets还有其他缺点吗?
既然两种技术似乎都做同样的事情,那么在哪种情况下,人们更愿意使用其中一种?更具体地说,HTML5 WebSockets使AJAX长/短轮询过时,还是有令人信服的理由更喜欢AJAX而不是WebSockets?
我想将新的承载添加到Android(rooted/custom build),成为Wifi和GPRS的同行.
我做了一些Android开发,我知道(在Android 2.2中)有WIFI和GPRS的常量.这是否意味着我需要在所有地方添加常量,以及提供网络堆栈?
我要添加的第一个载体是USBNet(用于带USB主机的Androids).
另一个是3G USB加密狗作为第二个GPRS承载.
我已经开始下载源代码了.
我想在我的云中为多个服务器制作BIT(内置测试).我需要请求在大超时时失败.
我应该如何用java做到这一点?
尝试类似下面的东西似乎不起作用.
public class TestNodeAliveness {
public static NodeStatus nodeBIT(String elasticIP) throws ClientProtocolException, IOException {
HttpClient client = new DefaultHttpClient();
client.getParams().setIntParameter("http.connection.timeout", 1);
HttpUriRequest request = new HttpGet("http://192.168.20.43");
HttpResponse response = client.execute(request);
System.out.println(response.toString());
return null;
}
public static void main(String[] args) throws ClientProtocolException, IOException {
nodeBIT("");
}
}
Run Code Online (Sandbox Code Playgroud)
- 编辑:澄清正在使用的库 -
我正在使用apache的httpclient,这是相关的pom.xml部分
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0.1</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud) 正如标题中所写,我的问题是,为什么TCP/IP在传输数据时使用大端编码而不是替代的小端方案?
我们正在尝试调整通过TCP接受消息的应用程序,并使用TCP进行一些内部消息传递.在进行负载测试时,我们注意到响应时间显着降低(然后完全停止),因为对系统进行了更多的同时请求.在此期间,我们看到很多TCP连接处于TIME_WAIT
状态,有人建议将TIME_WAIT
环境变量从默认的60秒降低到30.
据我所知,该TIME_WAIT
设置实质上设置了在关闭连接后TCP资源再次可用于系统的时间.
我不是一个"网络人",对这些事情知之甚少.我需要很多联系帖子中的内容,但是"笨拙"了一下.
TIME_WAIT
值不能设置为0,但可以安全地设置为5吗?10岁呢?什么决定了这个值的"安全"设置?我无法连接到我的本地SQL Server Express(2012,但版本无关紧要)从我的服务器(Windows 2008 R2)上使用它上面的工具(如果你想知道的话,可以使用APEX SQL Data Diff).我可以很好地浏览网络服务器,并从可用服务器的下拉列表中选择我的本地实例,但是当我去服务器上搜索表时,它会超时出现此错误消息(SSMS也是如此).
建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:28 - 服务器不支持强文本请求协议)(Microsoft SQL Server,错误:-1)
我启用了防火墙 - 不是这样.
我允许远程连接 - 不是这样.
SQL Server Browser服务已打开并通过防火墙 - 不是这样.
我可以正常连接使用同样的工具TO服务器,但是从服务器失败.
有任何想法吗?
什么是TCP连接?我知道从客户端到服务器没有物理连接.这个连接只是客户端的套接字与三次握手后服务器创建的新套接字相关联吗?此后,一旦建立"连接",连接两端的套接字就会知道将数据包发送到何处.
这与UDP初始与TCP的握手之外的其他方式有什么不同?是每个服务器套接字只有一个客户端将数据包发送到该特定套接字?
在主机之间建立专用连接有哪些可能的优势?我对TCP和UDP的理解仍然非常基础,因此广泛的概括就足够了.
我已经意识到我过去曾问过几个问题,比如这个问题真的归结为一个更基本的问题.
是否有任何众所周知的网络通信设计模式,以及它的性质,协议构造/解析?谷歌搜索没有透露太多.
请注意,我不是在寻找任何给定问题的解决方案,我正在寻找处理网络通信及其协议的文档化设计模式.
编辑:
请不要提出各种实现细节或讨论特定协议,除非它与设计模式相关联.协议设计不是问题,它是用于创建或解析我正在寻找的协议的设计模式,更不用说通信模式本身了.
EDIT2:
我发现很难相信没有人提出任何常见的网络通信模式.是的,我知道"这取决于",但你可以说任何项目,但有很多模式涵盖一般的想法.
tcp ×3
networking ×2
3g ×1
ajax ×1
android ×1
endianness ×1
html5 ×1
http ×1
java ×1
javascript ×1
sql-server ×1
tcp-ip ×1
timeout ×1
udp ×1
websocket ×1
wifi ×1