写得时候遇到了一个很大的问题,就是我在发送用户名,接受用户名就会一直卡住。然后等了好久后提示
recv ‘\r\nSession timed out.\r\n\r\nTelnet Server has closed t’
虚拟机服务器是Win7的 主机客户也是Win7。
1、一开始觉得是因为socket 设置的问题,上网查了很久,也按他们的方法改了,但都不管用。
2、后来觉得是因为读取行的问题,linux和Windows返回行信息不同,所以没办法读取到,所以将
2025年01月21日
写得时候遇到了一个很大的问题,就是我在发送用户名,接受用户名就会一直卡住。然后等了好久后提示
recv ‘\r\nSession timed out.\r\n\r\nTelnet Server has closed t’
虚拟机服务器是Win7的 主机客户也是Win7。
1、一开始觉得是因为socket 设置的问题,上网查了很久,也按他们的方法改了,但都不管用。
2、后来觉得是因为读取行的问题,linux和Windows返回行信息不同,所以没办法读取到,所以将
2025年01月21日
本文将从上层介绍Linux上的TCP/IP栈是如何工作的,特别是socket系统调用和内核数据结构的交互、内核和实际网络的交互。写这篇文章的部分原因是解释监听队列溢出(listen queue overflow)是如何工作的,因为它与我工作中一直在研究的一个问题相关。
先从建好的连接开始介绍,稍后将解释新建连接是如何工作的。
内核管理的每一个TCP文件描述符都是一个struct, 它记录TCP相关的信息(如序列号、当前窗口大小等等),以及一个接收缓冲区(receive buffer,或者叫receive queue)和一个写缓冲区(write buffer,或者叫write queue),后面我会交替使用术语buffer和queue。如果你对更多细节感兴趣,可以在Linux内核的net/sock.h中看到socket结构的实现。
2025年01月21日
前言
在本章节中,我们将深入探讨如何在Rust中实现异步的Socket编程。异步编程允许我们在执行网络操作时避免阻塞线程,从而提升性能和响应速度。在传统的同步编程中,程序在等待I/O操作完成时会阻塞当前线程,而在异步编程中,我们可以通过非阻塞方式处理I/O,继续执行其他任务。这对于需要处理大量并发连接的服务器应用程序尤其重要。
2025年01月21日
2025年01月21日
Socket通讯是软硬件直接常用的一种通讯方式,分为TCP和UDP通讯。
在我的职业生涯中,有且仅用过一次UDP通讯。而TCP通讯系统却经常写,正好今天写了一个TCP通讯的软件。总结一下内容
软件使用C#编程原因写的,为了能够使用所有的电脑,采用了NET Framework 4.0。
2025年01月21日
导致“Connection reset”的原因是服务器端因为某种原因关闭了Connection,而客户端依然在读写数据,此时服务器会返回复位标志“RST”,然后此时客户端就会提示“java.net.SocketException: Connection reset”。可能有同学对复位标志“RST”还不太了解,这里简单解释一下: |
2025年01月21日
网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。
本文讨论的是socket设置为阻塞模式,如果socket处于阻塞模式运行时,就需要考虑处理socket操作超时的问题。
2025年01月21日
某台服务器出现假死的现象,服务进程在,但是就是不工作。于是想定位下,先看了下服务器本身的状态都是OK的,然后看下服务的状态,先执行如下的命令,发现服务是存在的,如下:
执行jps -ml输出如下:
然后执行jstack 2276,报出如下的错误: